VBA開発

VBAでIE操作「セレクトボックスで現在選択中の情報を取得」【エクセルマクロ】

前回、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操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。

 

コメント

タイトルとURLをコピーしました