前回、VBAでIEを起動し、Webページ内のセレクトボックスの選択・解除する方法を記事にしました。
VBAでIE操作「セレクトボックスの選択/解除」【エクセルマクロ】
今回は、セレクトボックスで選択された情報を取得します。
セレクトボックスで現在選択中の情報を取得
当方の問い合わせページにセレクトボックスがある為、そちらをサンプルとして記載します。
'■InternetExplorerでセレクトボックスの選択された情報を取得。 Sub sample_IE_selextbox_selected() Dim objIE As InternetExplorer Dim objDoc As Variant '■IEを起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '■該当ページへ遷移 objIE.navigate "https://vba-create.jp/kyoteivba-contact/" 'Call Call_IE_WaitTime '■optionタグを全て検索し、selectedの情報を取得する For Each objDoc In objIE.document.getElementsByTagName("option") If objDoc.Selected = True Then MsgBox objDoc.innerText '今回はselectedは初期状態の「空白」の為、Msgboxは空白で表示 End If Next objDoc End Sub
'■HTMLサンプル(今回現在選択されている状態は「<option value=""></option>の空白です」) <span class="wpcf7-form-control-wrap votemenu"> <select name="votemenu" class="wpcf7-form-control wpcf7-select wpcf7-validates-as-required" aria-required="true" aria-invalid="false"> <option value=""></option> <option value="人気_追上(No別)">人気_追上(No別)</option> <option value="人気_追上(Gr別)">人気_追上(Gr別)</option> <option value="人気_追上(場別)">人気_追上(場別)</option> <option value="買い目_追上(No別)">買い目_追上(No別)</option> <option value="買い目_追上(Gr別)">買い目_追上(Gr別)</option> <option value="買い目_追上(場別)">買い目_追上(場別)</option> <option value="買い目_通常">買い目_通常</option> <option value="その他投票">その他投票</option> </select> </span>
その他
- 毎度おなじみですが、Call_IE_WaitTimeの処理はこちらを参照ください。
その他
Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。
Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。
コメント