
VBA×ChromeでWebスクレイピングを始める
Web情報を取得する方法の1つにWebスクレイピングがあります。
数年前まではWebスクレイピングの主要ブラウザはIEでした。
しかしMicrosoftさんはInternetExplorerのサポートを終了しました。
Edgeや
Chromeなどのブラウザを使った別の方法を検討する必要があります。
今後定番となるSeleniumbasicを使ったWeb情報を取得する方法について紹介、解説していきます。
読み方はセレニウムベーシックです。英語表記の方が使用頻度が高いです。できるだけ英語名で覚えてください。

Webスクレイピングはやり方さえ分かればそんなに難しくないですよ。
アプリのダウンロードからコードの書き方まで一貫して情報提供します。
この記事でわかる事
大きく分けると5つです。
- Webスクレイピングについて説明
- Seleniumbasicについて説明
- 動画で使用感をイメージする
- 環境構築について解説
- 簡単なコードの書き方を紹介

Enjoy Excel
WebスクレイピングやSeleniumbasicとは何かを間単に説明してから初期設定(環境構築)を説明します。
初期設定(環境構築)は非常に手間がかかります。よって丁寧に解説していきます。
最後に出来るだけ間単にコードを書く為のヒントになる記事を何点か用意しています。
継続して読んでいただくとWebスクレイピングができる様になります。
具体的に書くと「VBAを使ってExcelから
Chromeや
Edgeを操作できる」様になります。

この本で勉強しました
Webスクレイピングに興味があったのですがどうやって勉強したら良いのか分かりませんでした。
色々調べてく中でWebスクレイピングについて分かりやすく書いている本を見つけました。
Webスクレイピングについて書かれているのは約20ページほどですがかなり充実しています。
初期設定やWeb上の値を取得する為のメソッドがリスト化されている等非常に見易いです。
Webスクレイピングについて
Wikipediaの情報です。
ウェブスクレイピング(英: Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと
Wikipedia
http://で始まるWebサイトから情報を抽出する為の方法、行為をWebスクレイピングと呼んでいます。
Seleniumbasicについて
簡単に言いますと「ExcelからWebブラウザを操作するためのツール」です。
Webスクレイピングと絡めて会話で使う際には以下のような使い方をします。
Seleniumbasicを使ってWebスクレイピングする
ExcelからみたSeleniumの位置付けとしては一般的にはライブラリと言われるものに該当します。
ライブラリがイメージ出来ない方は以下引用をご覧ください。
ライブラリ(英: library)は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶときは、それ単体ではプログラムとして動作させることはできない、つまり実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言える。
Wikipedia
さらにライブラリを具体的に表現します。VBAでSeleniumを使う際は参照設定を使います。
インストールするとVBAの参照設定でSelenium Type Libraryが選択出来る様になります。
参照設定で使えるとライブラリとはどんなものかイメージできる方も出てくるかもしれません。
連想配列で使うMicrosoft Scripting Runtime等と同じ様な位置付けです。
後付けで出来る事が増えるツールといった感じです。
Seleniumbasicは後付けでExcelからWebブラウザが操作できるライブラリという事になります。
処理がイメージ出来るような画像を用意
端的に申し上げますと「ExcelからSeleniumbasic経由でWebスクレイピング」をする事になります。
マクロのプロシージャからSeleniumbasic経由で各ブラウザのドライバーに指示を出します。
ドライバーがマクロからのリクエスト(コード)に対応した操作をブラウザに対して行います。
ドライバーがWeb環境との橋渡し役になり必要な情報を取り出してくるという仕組みです。

こんな使い方もあります
スクレイピングはWebサイトから情報を抽出する為の方法、行為と書きましたがこんな使い方もできます。
Webサイトに設置してあるボタンをクリックしたり検索窓に文字を入力する事も出来ます。
よって人が実際に作業するようなことも再現できます。
- Google翻訳に文字を入力して翻訳された情報を取り出す
- 各種WebAppへのログインを代行させる
- 天気予報や株価のサイトで個別情報を入力してリアルタイムで生成されたデータを取り出す
こちらの記事では1クリックでYahooのニューストピックスを全て取得する動画を用意しています。
こんなことも出来ますVBAを使ってWebからデータを取得|Webスクレイピングとは?できる事を教えて
動画
私のブログ内の記事から情報をスクレイピングした動画を用意しました。
簡単ですがスクレイピングがどういったものか分かる様になっています。
BGM付です。再生時は気をつけてください。
複数のURLから情報を取得できる
Webスクレイピングは1度で複数のURLにアクセスして情報を取る事が出来ます。
コードが書ける人であればWeb上にある情報の掴み方だけ覚えれば何でも出来る様になります。
慣れれば比較的簡単にスクレイピング可能です。これで便利さは認識いただけましたね。
難易度は高めです
予想通りかもしれませんがVBA初心者で知識がまだ定着してない方には難しいです。
しかし必要最低限の機能さえおさえれば比較的簡単にWebの情報を取得出来るようなツールになっています。
無料で登録も不要、Seleniumbasic用の特殊な学習も不要というメリットも多いツールです。
しかしデメリットも何点かあります。
デメリットとして1番大きいのは「環境構築とメンテナンスの手間」が挙げられます。
環境構築はかなり大変
Seleniumbasicにおける環境構築はかなり手間がかかります。
コードを書くところまで進めずに断念してしまう人が多いです。
加えて1回設定したらOKというわけにはいきません。
一定のタイミングでメンテナンスが必要という非常に手間のかかる環境の中作業をする必要があります。
「面倒だから避けよう」ではなく「面倒だからこそしっかり解説」していきます。
以降の記事を読んでいただければ環境面の心配はありません。
環境構築
先にやらないといけない事を書き出してみます。
- 1Seleniumbasicのダウンロードとインストール
アプリのDLとインストールについて順を追って説明
- 2Chromeのダウンロードとインストールとバージョン確認
ブラウザ(Chrome)のダウンロードとインストールを行います
ブラウザのバージョンに対応したドライバーを用意します
- 3Chromeドライバーをダウンロード
ブラウザのバージョンと同じドライバーをDL
- 4Chromeドライバーを上書保存
Seleniumがデフォルトで持っているドライバーを上書き
- 5VBEの参照設定で必要なライブラリを選択
Selenium Type Library を選択
5番のVBEの参照設定は実行時バインディングにする事でマストでは無くなります。
基本は上記4点は必須だと思って下さい。
実行時バインディングが分からない人は作業内容の1から5まで準備してください。
続いて私のPC環境について情報展開しておきます。
- 使用するブラウザ:Google Chrome
- OS:Windows10
重要なのは自動で動かすことを想定しているブラウザの種類と自PCに搭載されているOSの種類です。
これをふまえて作業を紹介していきます。
Edgeでの環境構築についても紹介しています。このまま記事を読み進めてください。
Seleniumbasicのダウンロードとインストール
まずはSeleniumbasicのダウンロードです。以下URLにアクセスしましょう。
以下TOP画面です。

少し下の方を見ていくと太字のDownloadという文字が出てきます。その下のRelease pageをClick。

次の画面では中断よりやや下AssetsからSeleniumBasic-2.0.9.0.exeを選択。
これはダウンロード時のバージョンで最新のものを選択してください。

インストーラーをダウンロード出来る様になります。
作業し易い様にデスクトップにダウンロードしましょう。
インストーラーをClickすると以下のような画面が起動してきます。Nextを押下。

次のダイアログボックスではI accept ・・・ にチェックを入れます。その後Nextを押下。

WebDriver for Chrome にレ点を入れます。続いてIEのレ点を外しましょう。その後Nextを押下。

既にインストール済みだとこのようなダイアログボックスが立ち上がります。
通常は出ませんが一応お見せしました。スルーして次の画面に進みます。

最終的にこの画面でInstallを押下してインストール開始となります。

インストールが進むとプログレスバーが動いて作業の進捗を見る事ができます。


インストールが終了するとその旨を伝えるダイアログボックスが立ち上がります。
Finishボタンを押下してください。インストールはこれで終了です。
Chromeのダウンロードとインストールとバージョン確認
Chromeのダウンロード、インストール、バージョン確認について説明します。
Chromeのダウンロード
Chromeのダウンロード、インストールは難しくないので省略します。
Chromeのダウンロード先のリンクだけ用意しておきます。
必要に応じてダウンロードとインストールをお願い致します。
Chromeのバージョン確認
バージョンを確認する方法を紹介します。
Chromeを起動してアドレスバーに以下の様に入力してください。
一番上の値を確認。私は 105.0.・・・という数値です。先頭の3文字を控えましょう。

Chromeドライバーをダウンロード
以下URLにアクセスしましょう。
ブラウザのバージョンに合わせたドライバーを取得してください
ずっと下に見ていく中で自分PCのChromeのバージョンと同じものをダウンロードします。
先頭の3文字が一致していれば大丈夫です。
今回私はCurrent Releasesの105.0.・・・をダウンロードしました。

次の画面ではOS毎にドライバーを選択します。
自分のPCはWindowsですので下から2番目のzipファイルをダウンロードします。Windowsは一択です。

ドライバーのバージョンが合わなかった時
時系列で履歴を残すようにしました。
Chromeドライバーを上書保存
先程Seleniumbasicをインストールしました。
その中にChromeのドライバーが居るのですが最新ではないです。
まずは最新のドライバーをインストールしましょう。
その後Seleniumbasicがデフォルトで持っているドライバーと入れ替えてください。
理由はSeleniumbasicに備えてあるドライバーがかなり古いものだからです。
C:\Users\(ここは各ユーザー名)\AppData\Local\SeleniumBasic
C:\Users\ABC\AppData\Local\SeleniumBasic
記事を書いているのは2022年10月です。以下画像はSeleniumをインストールした際の周辺データです。
Chromeについては既に数ヵ月前にドライバーを入れ替えましたがEdgeのドライバーは2015年です。
この様にSeleniumbasicをインストールした際は古いドライバーが備付けられています。
インストール後は各自が使うブラウザに対して最新のドライバーを用意する必要があります。

具体的に何をやるかと言いますと単純に置き換えて(上書き)ください。
先程ダウンロードしたドライバーを上記フォルダにドラッグアンドドロップしてください。
すると「上書きしますか?」というような問い合わせが出るので上書きしてください。
関連記事:Edgeで環境構築
EdgeでWebスクレイピングを検討されている方はEdge用のドライバーをインストールしましょう。
Chromeと違ってドライバーにひと手間加える必要があります。
詳細はこちらをご覧ください。
VBEの参照設定で必要なライブラリを選択
やっとExcelの話になりましたね。お馴染みのVBEを開きます。
参照設定から Selenium Type Library を見つけてレ点を入れてからOKボタンを押下しましょう。

参照設定が何か?などは省略します。
多分スクレイピングをやる人はスキルとしてすでに参照設定の意味は分かっていると思います。
これでやっと環境構築が完了しました。
ブラウザは定期的にバージョンアップします
各ブラウザは不定期でバージョンアップします。
その時にSeleniumbasicに備えたドライバーもインストールする必要があります。
ドライバーが最新じゃない時はVBAでコードを実行した際にエラーで止まります。
「ドライバーが古いな」と気付きます。
このサイトのリンクを持っておきましょう
メンテナンス時は再度先程の設定と同じようにドライバーをダウンロードしましょう。
Seleniumbasicが持っているドライバーを上書きしてください。
この様に定期的にメンテナンスが必要です。環境を最新に保つ必要があります。
加えて見ていただいた様に非常に手間がかかります。
記事を用意した私自身も実際にこのURLに来て都度ドライバーをインストールしています。
ドライバーのバージョンアップに合わせて作業をするので不定期になります。
そんな時にツールの置き場所(この記事)が決まっているのでメンテナンスがかなり楽です。
簡単なコードの書き方を紹介
コードの書き方については別記事で紹介しています。
出来るだけ身近なケースを用意して簡単なコードでスクレイピングしていますのでご覧ください。
コードが書けるようになるVBA×Selenium×Cromeで簡単Webスク|Nameタグを使う
右クリックやダブルクリック、マウスホバーについて解説しています。
マウスの操作を再現【selenium×VBA】右クリックを含めたマウス操作を再現
私はXPathの方がスクレイピングしやすいです。理由は記事を見ていただく事で分かります。
更に簡単にコードを書く事ができるVBA×Chrome/Edgeでスクレイピング|XPathとは?|動画で解説
XPathを指定したうえでそのパスにある他の属性を取得する事もできます。
お役立てください【selenium×VBA】XPath指定でClass属性を取得
まとめ
私の印象では最初は環境構築7コード3という比率で環境構築の方が圧倒的に面倒で手間です。
- Seleniumのダウンロードとインストール
- ブラウザ毎にドライバーを用意してSeleniumの環境にセットする
- ブラウザのバージョンアップの度にドライバーを再インストールする必要がある
この様にイニシャルもランニングも大変です。
しかし覚えてしまえば・・・という感じでしょうか。今では苦になりません。
慣れると環境構築2コード8ぐらの比率に変わってきます。
スクレイピングに慣れてくると色々なWeb画面と対峙する事になります。
複数のURLに対応する為にコードのアレンジが必要になります。
よってコードの事を考える比率が多くなり上記の様な比率に至ります。
簡単かつ最短距離でWebスクレイピングを解説してきました。難しかった人も居るはずです。
分かりにくい時は分かっている人に聞きましょう。以下リンクをご覧ください。
