エクセルでウェブ情報を取得すると、データ分析やモニタリングを簡略化できます。
たとえば会社のデータベースにアクセスして情報を取得できる仕組みを作れば、大幅な効率化を実現できる場合があります。
このページでは、エクセルVBAを活用したウェブ情報の取得事例を紹介します。
・VBAでウェブ情報を取得する事例
以下で説明していきます。
目次
エクセルVBAでウェブ情報を取得する方法
エクセルでウェブ情報を取得する方法について紹介します。
2. HTTP通信(HTTPリクエスト)でウェブ情報を取得
3. Seleniumによるブラウザ操作
上記の方法について事例を合わせて紹介していきます。
1. IE(Internet Explorer)操作
VBAを使ってInternet Explorerを起動し、そのブラウザの情報を取得する方法です。
VBAのIE操作とは
VBAでInternet Explorerを起動してブラウザを直接操作するため、視覚的にイメージしやすい点がメリットです。
またブラウザ操作のため、動的に変化するウェブページ情報を取得するのが簡単です。
2022年でサービス停止
しかしながらInternet Explorerは2022年にサービス停止となります。
そのため多くの企業ではそもそもIEを使用できないことが多いです。
またサポート終了に伴い、IE操作そのものができなくなるリスクもあります。
詳しくはこちら(外部)サイトで丁寧にまとめられています。
IE操作による方法は、SeleniumやPowerAutomateのような代替方法を活用することを推奨します。
VBAによるIE操作のための事前準備
VBAでIE操作を行うためには、以下の参照設定を変更する必要があります。
2. Microsoft HTML Documents Controls
上記の参照設定を追加しておくと、IEのウェブページ情報を取得して解析することができます。
VBAでIE操作する事例
VBAでIE操作する事例について、以下を紹介します。
1. VBAでIE操作!インターネットを開いて自動でウェブデータ取得する方法(事例とコード付)
2. VBAでie操作!リンクやボタンを自動クリックしてウェブ情報を取得
3. VBAでヤフオクのデータを取得しExcelへ出力!IE操作マクロのテンプレート付
4. VBAで英語翻訳を自動化!エクセルの文章をGoogle翻訳するツール紹介
5. VBAで翻訳を自動化!Word文章をGoogle翻訳するツール紹介|日本語と英語が対象
上記で事例をもとに説明しています。
2. HTTP通信(HTTPリクエスト)
HTTPリクエストで指定したURLから、ウェブ情報としてHTTPレスポンスを取得します。
たとえばChatworkやSlackなどは、WebAPIなどを使って、チャットにメッセージを送信したりJSONとしてメッセージ一覧を取得したりできます。
VBAを使ってHTTPリクエストによる情報取得に必要な事前準備
VBAでHTTPリクエストで情報を取得することができますが、いくつかの方法があります。
ここではを行うためには、以下の参照設定を変更する必要があります。
2. Microsoft HTML Documents Controls
上記の参照設定を追加しておくと、IEのウェブページ情報を取得して解析することができます。
なお上記以外の参照設定でも可能ですが、全てを紹介すると混乱する場合もあるので、上記のみを紹介しています。
VBAでHTTPリクエストして情報を取得
1. VBAのHTTPリクエストでウェブページのタイトル(件名)を取得しエクセル出力
VBAで天気予報の情報を取得
1. VBAで天気予報情報をWebAPIを通してウェブ情報を取得しエクセルへ出力
2. VBAで天気予報データをWebAPIで取得しJSONパースでエクセルへ出力
VBAでChatworkを操作
1. エクセルVBAでChatwork(チャットワーク)にメッセージを自動通知
2. エクセルVBAでChatworkにファイル添付とメッセージ通知を自動実行
3. エクセルVBAでChatworkに定期通知する仕組みを作ってみる
4. VBAでChatworkのタスクを全て取得してエクセルに書き出す
5. エクセルVBAでChatwork(チャットワーク)にタスク通知|期限、担当者も設定
6. VBAでChatworkのメッセージをまとめて取得してエクセルに書き出す
VBAでSlackを操作
1. エクセルVBAでSlackにAPIを通じてメッセージを自動通知
3. Seleniumによるブラウザ操作
Seleniumを使う方法は別ページで紹介しています。Pythonを使う方が無難なので、そちらを紹介します。
Seleniumを使うことで、ウェブ情報を取得できます。ただしchrome driverなどをインストールしないといけません。
そのためSeleniumを使うのであれば、Pythonを使うほうがよいと考えています。
Pythonのほうがインターネットで数多くの情報が紹介されているからです。
わざわざVBAを使ってSeleniumを使う必要性はないと考えています。
Pythonに関しては以下で説明しています。
上記のページでPythonでSeleniumを使ってウェブ情報を取得するプログラムについても紹介しています。
Excel VBAについて詳しく理解したいなら
VBAを活用すると、仕事を効率化できる幅を広げることができます。
たとえば私が実際にVBAを活用して効率化してきた作業は以下の記事で紹介しています。
興味がある人は以下の記事もご覧ください。
動画でも解説しています。
エクセルマクロVBAで出来ることを15の事例で紹介|日常業務をラクにするヒントを見つけよう!
(音声が小さいので、ボリュームを上げてご覧いただければと思います)
VBAの勉強方法
私はプログラミング初心者からVBAを勉強を始めて少しずつレベルアップしていきました。
成長の過程は以下で紹介しています。
学習の過程では、意識すべきポイントがあります。
自分のレベルに合わせて、少しずつレベルアップしていくとより効果的に学ぶことができます。
以下のページで事例や動画を使いながら、エクセルマクロについて勉強できます。
上記のリンクでは、体系的にマクロを勉強できますので、興味がある人はご覧ください。