セレクトボックスを自動選択
今回は、セレクトボックスの選択です。
もう全然大丈夫という方もいらっしゃると思いますが、セレクトボックスはラジオボタン・チェックボックスのやり方とは少し異なるため注意が必要です。
こちらもいくつか制御方法がありますので解説していきます。
フォームセレクトボックスの自動選択マクロ1
Sub sample()
Dim objIE As InternetExplorer
Dim objInpSel As HTMLSelectElement
'InternetExplorerでテスト用フォームページを起動
Call ieView(objIE, "http://www.vba-ie.net/code/test.html")
Set objInpSel = objIE.document.getElementsByName("pref")(0)
'セレクトボックスを選択
objInpSel.selectedIndex = 2
End Sub
テスト用フォームページのソース
出身地:
<select name="pref">
<option>東京</option>
<option>大阪</option>
<option>福岡</option>
</select>
(省略)
</form>
※必要な項目のみ抽出しています。
実行結果
name名に「pref」という名前のエレメントを取得し、「SelectedIndexプロパティ」で選択しています。
今回は、インデックス2番の福岡を選択しています。
フォームセレクトボックスの自動選択マクロ2
Sub sample()
Dim objIE As InternetExplorer
'InternetExplorerで本サイトを起動
Call ieView(objIE, "http://www.vba-ie.net/code/test.html")
'セレクトボックスを選択
objIE.document.all("pref")(2).Selected = True
End Sub
こちらでは、Allオブジェクトでprefエレメントを取得し、添え字2の福岡を選択しています。
よく、ラジオボックスなどと同じ処理でうまくいかないという方が多いですが、セレクトボックスは処理の仕方が違うということを覚えておきましょう。
次の「ファイル選択をクリック」の制御方法について解説していきます。
次の記事: VBAでIEのファイル選択をクリック >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。