ホームページの入力フィールドに自動で移動するには?

解決


atc  2003-11-19 23:13:35  No: 80475

VB6でプログラムを組んでいます。
IEを起動してホームページを見るところまではいけます。
そこで、ページを表示したと同時に個々のページの<FORM>(input type=text)などの入力フィールド(複数あれば最初のタグ)に移動したいのです。
情報持っている方お願いします。


魔界の仮面弁士  2003-11-20 00:50:02  No: 80476

DocumentCompleteイベントの発生後に、Documentプロパティ経由で、
入力フィールドのHTML要素に対してfocusメソッドを実行すればOKかと。


atc  2003-11-20 02:15:05  No: 80477

DocumentCompleteイベント発生後というのは、具体的にどの処理
にあたるのでしょうか?  
この掲示板を検索したのですがわかりませんでした。知識不足ですみません。


atc  2003-11-20 23:18:04  No: 80478

'InetExp Object の作成!
Set IE = CreateObject("InternetExplorer.application")

Do While IE.Busy
Loop

過去ログを調べましたがこのIE起動の仕方事態がまずいのでしょうか・・・


atc  2003-11-26 23:43:49  No: 80479

なんとかfocusすることができました。
魔界の仮面弁士さんありがとうございました。
しかし自動で入力するために変数xに
<INPUT type = "text" name = "id">
のidをいれて
objForm.x.focus(objForm.id.focus)
では命令が実行できません。変数を使うには
どうしたら良いのでしょうか?


魔界の仮面弁士  2003-11-27 02:24:44  No: 80480

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200302/03020045.txt
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200309/03090009.txt
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200309/03090093.txt


atc  2003-11-27 23:58:58  No: 80481

魔界の仮面弁士様レスありがとうございます。過去ログを参照して
submitメソッドをやめてclickメソッドで作ってみたのですがうまくいきません。
 Dim objDocument    As Object    'As MSHTML.HTMLDocument
 Dim objForm        As Object    'As MSHTML.HTMLFormElement
 
  Set objDocument = IE.Document
  Set objForm = objDocument.Forms(0)
  
Dim objElement  As Object    'As MSHTML.IHTMLElement
Dim objElements As Object
      
  Set objElements = objForm.elements
  For Each objElement In objElements
     If objElement.Name = fname Then
       objElement.Click
     End If
  Next
#fnameというのは<input type = "text" name = "id">
#fname = "id"  となっています。
#エラーは出ないのですがクリックされていません
#どこかわるい点はありますか?


魔界の仮面弁士  2003-11-28 00:16:57  No: 80482

> submitメソッドをやめてclickメソッドで作ってみたのですがうまくいきません。
やりたい事は、『入力フィールドに自動で移動する』ことですよね?
であれば、submitやclickは、この場合関係ないかと。focusメソッドでどうぞ。

> #fnameというのは<input type = "text" name = "id">
> #fname = "id"  となっています。
name属性を持つエレメントを探したいのであれば、
documentオブジェクトの、getElementsByNameメソッドも使えます。

> #エラーは出ないのですがクリックされていません
そもそも殆どのWebページでは、input type="text" エレメントを
クリックしても、何も起きないと思いますけれども。。。(^^;)

VB6でWindowsアプリを作る時だって、Command1_Click に処理を書く事はあっても、
Text1_Clickに処理を書く事は、殆どありませんよね。


atc  2003-11-28 01:03:48  No: 80483

レスありがとうございます。
とんちんかんなことをいってましたが(私が)、なんとか解決できました。
上のソースのclickとfocusを入れ替えたらできました(^^;)
魔界の仮面弁士様ありがとうございました。

マウスで入力フィールドをクリックするとそこに移動しますよね?
それでclickメソッドでも移動するのだと思い、上のようなソースを
組んでしまいました。;;

最後にお聞きしたいのですが、前のソース(objForm.id.focus)の
”objForm.id”と”objElement”  
は同じものになったと考えてよろしいのでしょうか?


魔界の仮面弁士  2003-11-28 02:01:33  No: 80484

> は同じものになったと考えてよろしいのでしょうか?

Is演算子を使えば、同一のオブジェクトであるかどうかを確認できます。

If objElement Is objForm.id Then
    MsgBox "同じ物です。"
Else
    MsgBox "違うものです。"
End If


atc  2003-11-28 05:39:43  No: 80485

レスありがとうございます。
実行してみたところ”違うものです”でした。
いろいろオブジェクトについて調べてみます。
魔界の仮面弁士様様ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加