IEのテキストボックスを編集する
こんにちは
9月中旬に入り涼しくなってきましたね。
昨夜は寒いぐらいですw
さて、今回はIEのテキストボックスの内容です。
テキストボックスといえば、GoogleやYahoo!の検索を行う際に入力するところですね。
ここを自在に入力できれば、大量のデータを検索でき、検索結果を取得できると思います。
今回はそのテキストボックスの入力と値の取得についてやってみましょう。
サンプルプログラム
Sub useTextbox() Dim ie As InternetExplorer Dim textInput As HTMLInputElement Dim textOutput As HTMLInputElement Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://book.impress.co.jp/appended/3384/4-2.html" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop Set textInput = ie.document.getElementById("Text1") MsgBox textInput.Value Set textOutput = ie.document.getElementById("Text2") textOutput.Value = "VBAからの書き込み" End Sub |
1行目:プロシージャの開始
2行目:変数の宣言
3,4行目:HTMLInputElement型として変数を宣言
5行目:なし
6行目:変数ieにInternetExplorer.Applicationをセット
7行目:IEを表示
8行目:ページに接続
9~11行目:ページを開くまで待機
12行目:なし
13行目:DOMを使ってId"Test1"のドキュメントを取得
14行目:取得したドキュメントからValueの項目をMsgBoxで表示
15行目:なし
16行目:"Text2"のドキュメントを取得
17行目:"Test2"のValueの項目を変更
18行目:終了
解説
HTML文章はpタグやtableタグなどあらゆる構成文章から成り立っており、この中から捜査対象のテキストボックスを特定するためには、Inputタグがもつ属性に注目してみましょう。
プログラム内のサイトにアクセスしてソースを表示すると次の箇所が存在します。
取得用:<input id="Text1" type="text" value="テスト">
出力用:<input id="Text2" type="text" value="">
今回のプログラムはこの情報をプログラムで編集するといった内容です。
HTMLInputElementとは
テキストボックスへの参照を格納するための変数とのことです。
<input ~>がこのオブジェクトに格納されます。
getElementByIdとは
HTMLInputElementのオブジェクトに指定されたIDを使用しているドキュメントを格納するといったところでしょうか。
今回は格納した"Text1"の値の表示と"Text2"の値の書き換えを行っていることが分かります。