Excel VBA で Microsoft Edge の読み込み完了を待ってページ内容を取得する方法

目次

概要

Internet Explorer 用の InternetExplorer.Application オブジェクトは廃止方向となり、Windows 10 以降では Microsoft Edge の自動操作が推奨されています。本記事では SeleniumBasic と EdgeDriver を用いて、Excel VBA から Edge を起動し、ページ読み込み完了後に特定要素のテキストを取得する手順を解説いたします。例としてサイト https://morinokabu.com/ の要素 id="Article" を取得します。


事前準備

項目手順
SeleniumBasicGitHub のリリースページからインストーラーをダウンロードし、通常インストールします。
EdgeDriverMicrosoft 公式サイトから使用中の 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

ポイント解説

項目説明
driver.ExecuteScript("return document.readyState")JavaScript を実行し、ページの読み込み状態を取得します。"loading""interactive""complete" の順で遷移します。
DoEvents待機ループ中に VBA の画面更新や割り込みを許可し、応答不能状態を防ぎます。
FindElementById("Article").Text指定 ID の要素テキストを取得します。クラスや XPath を使用した検索も可能です。

ReadyState と document.readyState の対応表

IE 用数値IE 用定数Edge(Selenium)での状態説明
0READYSTATE_UNINITIALIZED初期化前
1READYSTATE_LOADING"loading"読み込み中
2READYSTATE_LOADED"interactive"DOM 構築完了、サブリソース未完了
3READYSTATE_INTERACTIVE"interactive"同上
4READYSTATE_COMPLETE"complete"すべてのリソース読み込み完了

応用アイデア

目的実装例
要素が描画されるまで待機driver.Wait 10000, "id=Article" で最大 10 秒待機
ページ内の複数要素を抽出driver.FindElementsByCss("div.article-item") でコレクション取得
スクロールが必要なページdriver.ExecuteScript "window.scrollTo(0, document.body.scrollHeight);" で最下部までスクロール

まとめ

SeleniumBasic と EdgeDriver を組み合わせると、Excel VBA でも Microsoft Edge のページ読み込み完了を厳密に検知し、DOM 要素を自在に取得できます。従来の IE 自動操作コードを Edge へ移行する際は、本記事の手順とコードをベースにカスタマイズしていただくとスムーズです。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次