掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ブラウザの選択メニュー、決定ボタンをVBから操作するには (ID:79255)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 求める決定ボタンにName、IDがないので そうですね。input type="text" や input type="hidden" には、 大抵 name が付けられますが、ボタンに関しては、idもnameも付いていない事が 少なくありません。 > 何番目のFORMに含まれるか調べるところで 一つのHTML中に、複数のFORMエレメントがあるという事ですか? ところで……今回の『決定ボタン』というのは、どのエレメントなのでしょうか? もし、input type="submit"エレメントのボタンを押すのであれば、 》 F.submit だけで済みますが(FはFORMエレメントを指しています)、input type="button"エレメントや buttonエレメントなどを押すのであれば、それぞれのエレメントオブジェクトを取得してから、 clickする事になりますね。 もし、後者の「clickメソッド」による方法で取得するのであれば、 以下のように、幾つかの手法が考えられます。 Option Explicit 'フォームの送信ボタンを押すためのコード Private Sub Command1_Click(Index As Integer) Dim objDocument As Object 'As MSHTML.HTMLDocument Dim objForm As Object 'As MSHTML.HTMLFormElement Dim objElement As Object 'As MSHTML.IHTMLElement Dim objElements As Object 'As MSHTML.IHTMLElementCollection '最初のフォームを取得します。なお、フォームにnameかidがあるなら、 'それらも利用して取得した方が良いでしょう。 Set objDocument = Me.WebBrowser1.Document Set objForm = objDocument.forms(0) 'フォームデータを送信します。 Select Case Index 'formオブジェクトのsubmitメソッドを呼び出す方法 '→送信ボタンが、そのFORM中に一つしか無い時に使えます。 Case 0 objForm.submit 'elements + インデックス番号でinput type="submit"を探し、 'そのclickメソッドを呼び出す方法 '→送信ボタンのインデックスが分かっている時に使えます。 Case 0 'elementsは、コントロールのみを含んだコレクションです。 'つまり、INPUT/TEXTAREA/SELECTなどが返されます。 objForm.elements(6).click 'all + インデックス番号 で input type="submit"を探し、 'そのclickメソッドを呼び出す方法 '→送信ボタンのインデックスが分かっている時に使えます。 Case 1 'allは、コントロール以外のエレメントも返します。 'つまり、NOBR/BR等も含まれます。 objForm.all(15).click 'elementsまたはallを列挙して、最初のinput type="submit"を探し、 'そのclickメソッドを呼び出す方法 '→送信ボタンのインデックスが分からない時に使えます。 Case 2 Set objElements = objForm.elements For Each objElement In objElements If objElement.tagName = "INPUT" Then If LCase(objElement.Type) = "submit" Then objElement.click Exit For End If End If Next End Select Set objForm = Nothing Set objDocument = Nothing End Sub Private Sub Form_Load() Dim Cmd As VB.CommandButton For Each Cmd In Me.Command1 Cmd.Enabled = False Next Me.WebBrowser1.Navigate2 "http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200309/03090009.txt" End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Dim Cmd As VB.CommandButton For Each Cmd In Me.Command1 Cmd.Enabled = True Next End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.