VB6でプログラムを組んでいます。
IEを起動してホームページを見るところまではいけます。
そこで、ページを表示したと同時に個々のページの<FORM>(input type=text)などの入力フィールド(複数あれば最初のタグ)に移動したいのです。
情報持っている方お願いします。
DocumentCompleteイベントの発生後に、Documentプロパティ経由で、
入力フィールドのHTML要素に対してfocusメソッドを実行すればOKかと。
DocumentCompleteイベント発生後というのは、具体的にどの処理
にあたるのでしょうか?
この掲示板を検索したのですがわかりませんでした。知識不足ですみません。
'InetExp Object の作成!
Set IE = CreateObject("InternetExplorer.application")
Do While IE.Busy
Loop
過去ログを調べましたがこのIE起動の仕方事態がまずいのでしょうか・・・
なんとかfocusすることができました。
魔界の仮面弁士さんありがとうございました。
しかし自動で入力するために変数xに
<INPUT type = "text" name = "id">
のidをいれて
objForm.x.focus(objForm.id.focus)
では命令が実行できません。変数を使うには
どうしたら良いのでしょうか?
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
魔界の仮面弁士様レスありがとうございます。過去ログを参照して
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" となっています。
#エラーは出ないのですがクリックされていません
#どこかわるい点はありますか?
> 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に処理を書く事は、殆どありませんよね。
レスありがとうございます。
とんちんかんなことをいってましたが(私が)、なんとか解決できました。
上のソースのclickとfocusを入れ替えたらできました(^^;)
魔界の仮面弁士様ありがとうございました。
マウスで入力フィールドをクリックするとそこに移動しますよね?
それでclickメソッドでも移動するのだと思い、上のようなソースを
組んでしまいました。;;
最後にお聞きしたいのですが、前のソース(objForm.id.focus)の
”objForm.id”と”objElement”
は同じものになったと考えてよろしいのでしょうか?
> は同じものになったと考えてよろしいのでしょうか?
Is演算子を使えば、同一のオブジェクトであるかどうかを確認できます。
If objElement Is objForm.id Then
MsgBox "同じ物です。"
Else
MsgBox "違うものです。"
End If
レスありがとうございます。
実行してみたところ”違うものです”でした。
いろいろオブジェクトについて調べてみます。
魔界の仮面弁士様様ありがとうございました。
ツイート | ![]() |