VBA Web Scraping エクセルへ
⚡ スマートサマリー
ウェブスクレイピングping VBAを使用した例tracInternet Explorer の自動化機能を使用して HTML Web ページから ts データを Excel に直接取り込む Microsoft HTMLオブジェクトライブラリを使用して、サイト内を移動したり、HTMLテーブルを読み込み、収集した値をワークシートのセルに書き込んだりします。

データスクレイピングとはping?
データスクレイピングping は、tracHTMLウェブページから必要な情報をローカルマシン上のファイルに書き込む。通常、そのローカルファイルはExcelファイル、Wordファイル、または任意のファイルである。 Microsoft オフィスアプリケーション。ウェブページから重要な情報を効率的に取得するのに役立ちます。
データスクレイピングping インターネットを日常的に利用する研究プロジェクトにおいては、その価値が際立ちます。例えば、デイトレーダーがVBAを使用して金融ウェブサイトから市場情報をExcelシートに取り込むExcelマクロを実行する場合を考えてみましょう。
データスクレイピング前にExcelマクロを準備する方法ping (インターネットエクスプローラ)
データスクレイピングを開始する前に、Excelマクロファイルに対して特定の前提条件を実行する必要があります。ping プロセス。
これらの前提条件は以下のとおりです。
ステップ1) Excelベースのマクロを開き、Excelの「開発」オプションにアクセスします。
ステップ2) 開発者リボンから「Visual Basic」オプションを選択します。
ステップ3) 新しいモジュールを挿入します。
ステップ4) 新しいサブルーチンを初期化します。
Sub test() End Sub
このモジュールは以下のように動作します。
ステップ5) ツール タブの [参照] オプションにアクセスして、 Microsoft HTMLオブジェクトライブラリと Microsoft インターネット制御。
以下のファイルは、Internet Explorerの起動やマクロスクリプトの実行を容易にするため、モジュールに参照として指定する必要があります。
これでExcelファイルはInternet Explorerと連携できる状態になりました。次のステップは、データスクレイピングを容易にするマクロスクリプトを組み込むことです。ping HTMLで。
Excel VBAを使用してInternet Explorerを開く方法
ステップ1) サブルーチン内で、以下のように変数を初期化してください。
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
ステップ2) VBAを使用してInternet Explorerを開くには、ie.Visible = Trueと入力してF5キーを押します。
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
モジュールは以下のようになります。
VBAを使用してInternet ExplorerでWebサイトを開く方法
VBAを使用してInternet ExplorerでWebサイトを開く手順は以下のとおりです。
ステップ1) Excel VBA を使用して Internet Explorer にアクセスできるようになったら、次のステップは VBA を使用して Web サイトにアクセスすることです。これは Navigate 属性によって実現されます。 URL は二重引用符で渡されます。以下の手順に従ってください。
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
ステップ2) F5キーを押してマクロを実行します。すると、図のように次のウェブページが開きます。
これでExcelマクロはスクレイピングを実行する準備ができましたping 機能。次のステップでは、情報がどのように表現できるかを示します。tracVBA を使用して Internet Explorer から ted を実行します。
VBAを使用してWebサイトから情報をスクレイピングする方法
デイトレーダーがウェブサイトから毎日データにアクセスしたいとします。デイトレーダーがボタンをクリックするたびに、市場データが自動的にExcelに取り込まれるようにする必要があります。
上記のウェブサイトから、要素を検査し、データがどのように構造化されているかを観察する必要がある。
ステップ1) Control + キーを押して、以下の HTML のソースコードにアクセスしてください。 Shift + 私。
<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>
ソースコードは以下のとおりです。
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
ご覧のとおり、データは単一のHTMLテーブルとして構造化されています。したがって、HTMLテーブルからすべてのデータを取得するには、データをコレクションとして収集するマクロを作成する必要があります。
収集したデータはExcelに貼り付けられます。目的の結果を得るには、以下の手順を実行してください。
ステップ2) サブルーチン内でHTMLドキュメントを初期化します。
ステップ3) HTMLドキュメント内に存在するコレクション要素を初期化します。
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
ステップ4) 図に示すように、ネストされたループを使用してExcelシートのセルを初期化します。
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excelは、シートのRange属性またはCells属性を使用して初期化できます。VBAスクリプトの複雑さを軽減するため、コレクションデータはワークブックのSheet 1のCells属性に初期化されます。
マクロスクリプトの準備ができたら、サブルーチンをExcelボタンに割り当ててVBAモジュールを終了します。ボタンには「更新」など、適切な名前を付けてください。この例では、ボタンのラベルは「更新」とします。
ステップ5) 更新ボタンを押すと、以下の出力が表示されます。
ステップ6) Excelでの結果とInternet Explorerでの結果を比較してください。











