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を最新版のものに更新します。

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

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のバージョンは、上3桁までが一致していればOKです。

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

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を貼り付けします。ファイルを置き換えるを選択します。

 ChromeDriver を最新化

.NET Frameworkをインストール

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

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

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

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

%LOCALAPPDATA%\SeleniumBasic\Scripts

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

フォルダ内の、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個上の階層が、現在使用しているユーザープロファイルのパスです。当該フォルダを chromedriver用のユーザープロファイルとして使用します。

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

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

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

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

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

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

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

まとめ

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

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

コメント

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