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に遷移します。

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

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

ChromeDriver を最新化

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

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

ChromeDriver - WebDriver for Chrome
WebDriver is an open source tool for automated testing of webapps across many browsers. It provides capabilities for navigating to web pages, user input, JavaS...

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

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

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

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

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

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

ChromeDriver/ダウンロード/windows

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

chromedriver_win32.zip/すべて展開

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

chromedriver.exeをコピー

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

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

%LOCALAPPDATA%\SeleniumBasic

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

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

.NET Frameworkをインストール

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

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

具体的には以下エラーが発生します。

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

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

%LOCALAPPDATA%\SeleniumBasic\Scripts

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

StartChrome.vbsを実行

VBEの参照設定を実施

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

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

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

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

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

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

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

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

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

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

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

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

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

当該パスのフォルダ一式を適当な場所にコピーし、当該フォルダを chromedriver用のユーザープロファイルとして使用します。

実際のVBAコードとしては、以下のように記述します。

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

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

まとめ

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

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

コメント

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