テキストボックスに値を入力するサンプルコードです。標準モジュールに以下のコードを追加して、GoogleSearchプロシージャを実行します。GoogleSearchプロシージャを実行すると、Googleに接続して検索窓に「VBA」と入力します。
サンプルコード
【動作確認日】2014年2月11日
【動作確認環境】Windows XP SP3・Excel 2007・Internet Explorer 8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
'Googleの検索窓に「VBA」と入力する Sub GoogleSearch() Dim objIE As Object 'IE起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'Googleに接続 objIE.navigate "https://www.google.co.jp/" 'IEを待機 Call IEWait(objIE) '検索窓に「VBA」と入力 objIE.Document.getElementById("gbqfq").Value = "VBA" '5秒停止 Call WaitFor(5) 'IE終了 objIE.Quit Set objIE = Nothing End Sub 'IEを待機する関数 Function IEWait(ByRef objIE As Object) Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop End Function '指定した秒だけ停止する関数 Function WaitFor(ByVal second As Integer) Dim futureTime As Date futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Function |
解説
HTML文書を表わすオブジェクトであるdocumentオブジェクトを操作し、テキストボックスへ値を入力しています。documentオブジェクトを操作することによって、フォームに値を入力したり、HTML内の色々な値を取得するなど、様々な操作が可能になります。
1 |
objIE.Document.getElementById("gbqfq").Value = "VBA" |
まずDocumentオブジェクトのgetElementByIdメソッドに、目的の要素の名前を引数として渡し、操作すべきテキストボックスを決定します。GoogleのHTMLソースを見ると検索窓(テキストボックス)のinputタグのname要素 は「id=”gbqfq”」となっているので、getElementbyIdメソッドに”q”を引数として渡しています。
そしてgetElementByIdメソッドで取得したテキストボックスのvalueプロパティに値「VBA」を代入することで、テキストボックスに値が入力されます。
今回は検索窓に値を入力しただけですが、検索ボタンを押す処理については「ボタンをクリックする」の記事で説明しています。