Seleniumを導入し、VBAでchromeを自動操作する設定手順

Excelマクロ(VBA)

2022年6月16日をもって、Microsoft社のInternetExplorer(IE)のサポートが終了しましたが、従来、IEとVBAを使ってWEBスクレイピングされていた方は、スクレイピングツールの乗り換えに迫られているかと思います。

乗り換え先として有力なのが、SeleniumとGooglechromeです。

本記事では、Seleniumを導入し、VBAでchromeを自動操作するための設定手順を紹介します。

Seleniumを設定する

Selenium Basic のインストール

まず、以下URLより、Selenium Basicをインストールします。

Seleniumbasic
Seleniumbasic : A Selenium based browser automation framework for VB.Net, VBA and VBScript

Download/Release pageに遷移します。

Selenium Basic のインストール

遷移先で、SeleniumBasic-XXXXX.exe をダウンロードします。

Selenium Basic のインストール

ダウンロードされた「SeleniumBasic-XXXXX.exe」をダブルクリックし、画面の案内に従って、インストールします。

ChromeDriver を最新化

次に、ChromeDriverを最新版のものに更新します。

以下サイトから入手します。

Chrome for Testing availability

ChromeDriverのバージョンは、現在使用しているchromeのバージョンとあわせます。

現在使用しているchromeのバージョンは、以下の方法で調べてください。

Google Chrome のバージョンを確認する | JCOMサポート

ChromeDriverとchromeのバージョンは、上3桁までが一致していればOKです。

chromeのバージョンが109.0.5414.75であれば、109までを一致させます。

chrome Driverをダウンロードする際、以下画面の通り複数の選択肢がありますが、windowsを使用している場合は、chromedriver_win64.zipをダウンロードします。

以下、URLに遷移し、ダウンロードします。

ダウンロードしたchromedriver_win32.zipを右クリックし、すべて展開を選択し、展開してください。

chromedriver_win32.zip/すべて展開

「chromedriver_win32」というフォルダができますので、フォルダの中に入っているchromedriver.exeをコピーします。

chromedriver.exeをコピー

Selenium Basic をインストールしたフォルダを開きます。

インストールフォルダが分からない場合は、エクスプローラーを開いて、アドレスバーに以下を入力してエンターキーを押せば、該当フォルダが開くはずです。(エクスプローラーやアドレスバーについてはこちらを参照ください)

%LOCALAPPDATA%\SeleniumBasic

%LOCALAPPDATA%\SeleniumBasic/アドレスバー

開いたフォルダに、先ほどコピーしたchromedriver.exeを貼り付けします。ファイルを置き換えるを選択します。

 ChromeDriver を最新化

.NET Frameworkをインストール

必要なバージョンの .NET Framework をインストールします。

インストールしておかないと、マクロ実行時に以下のような、オートメーションエラーが発生します。

「実行時エラー ‘-2146232576(80131700)’ オートメーション エラーです」

インストールの方法は、エクスプローラーを開いて、アドレスバーに以下を入力してエンターキーを押してください。

%LOCALAPPDATA%\SeleniumBasic\Scripts

%LOCALAPPDATA%\SeleniumBasic\Scripts/.NET Frameworkをインストール

フォルダ内の、StartChrome.vbsをダブルクリックして実行してください。

StartChrome.vbsを実行

ユーザープロファイルの設定

次に、 Selenium用に、ユーザープロファイルを設定します。

スクレイピングの対象が、ログインが必要なサイトの場合、この設定をしないと、マクロを動かす都度、ログインする必要が生じます。

ユーザープロファイルについては、以下サイトが参考なります。

SeleniumでChromeのプロファイルを使う | Seleniumワールド
Chromeのユーザープロファイル Chromeのユーザー毎のデータ(履歴、ブックマーク、パスワード等)は、ユーザープロファイルに保存されます。SeleniumでChromeDr...

具体的には、現在使用しているchromeのアドレスバーに、chrome://versionを入力、エンターキーをクリック。

そこで表示された、プロフィールパスの1個上の階層が、現在使用しているユーザープロファイルのパスです。当該フォルダを chromedriver用のユーザープロファイルとして使用します。

chrome/ユーザープロファイル/プロフィールパス
ユーザープロファイルのパス

手順としては、上記の例の場合ですと、「C:\Users~\Chrome」という部分までをコピーして、エクスプローラーを開いて、アドレスバーにコピーします。エンターキーを押します。そこで開かれたフォルダー内に「UserData」というフォルダがありますので、当該フォルダーをコピーします。

コピーした 「UserData」 を適当な場所(どこでもよいです。デスクトップや、ドキュメント等)に貼り付けします。

貼り付けした先のパスを控えます。

ユーザープロファイルの利用

ユーザープロファイルをVBAで使用する際には、前項で控えたパスを用いて、以下のように記述します。

Dim PROFILE_PATH As String: PROFILE_PATH = "\XXX\XXX" '上記でコピーしたフォルダのパスを指定
driver.AddArgument ("user-data-dir=" & PROFILE_PATH)

VBEの参照設定を実施

次に、VBE(VisualBasicEditor)の参照設定を実施します。

VBE(VisualBasicEditor) を開いて、ツール > 参照設定を選択します。

Selenium Type Library/VBE(VisualBasicEditor)/参照設定

Selenium Type Libraryにチェックを入れます。

Selenium Type Library/VBE(VisualBasicEditor)/参照設定

以上で、 Selenium の初期設定は完了です。

まとめ

いかがでしたでしょうか? 参考になれば幸いです。

SeleniumとVBAを使って、ブラウザの自動操作を実現した事例としては、以下の記事を参考にしてみてください。

コメント

タイトルとURLをコピーしました