Internet Explorer 用の InternetExplorer.Application オブジェクトは廃止方向となり、Windows 10 以降では Microsoft Edge の自動操作が推奨されています。本記事では SeleniumBasic と EdgeDriver を用いて、Excel VBA から Edge を起動し、ページ読み込み完了後に特定要素のテキストを取得する手順を解説いたします。例としてサイト https://morinokabu.com/ の要素 id="Article" を取得します。
事前準備
項目
手順
SeleniumBasic
GitHub のリリースページからインストーラーをダウンロードし、通常インストールします。
EdgeDriver
Microsoft 公式サイトから使用中の Edge バージョンに対応する msedgedriver.exe を取得し、 C:\SeleniumBasic フォルダー(既定の SeleniumBasic インストール先)へ配置します。
参照設定
VBA エディターで [ツール] → [参照設定] → “Selenium Type Library” にチェックを入れます。
サンプルコード
Option Explicit
' 参照設定: Selenium Type Library が必要です
Sub FetchArticleText()
Dim pageURL As String ' 取得対象の URL
Dim driver As New Selenium.EdgeDriver
Dim pageText As String
pageURL = "https://morinokabu.com/"
' Edge を起動しページを開く
driver.Start
driver.Get pageURL
' 読み込み完了を待機(document.readyState が "complete" になるまでループ)
Do While driver.ExecuteScript("return document.readyState") <> "complete"
DoEvents
Loop
' id="Article" のテキストを取得
pageText = driver.FindElementById("Article").Text
' 結果をメッセージボックスで確認
MsgBox pageText, vbInformation, "取得したテキスト"
driver.Quit
End Sub