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 をダウンロード&インストールします。

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...

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

windowsを使用している場合は、chromedriver_win32.zipをダウンロードします。

ChromeDriver/ダウンロード/windows

zipファイルに入っているchromedriver.exeを、Selenium Basic をインストールしたフォルダに上書きします。

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

%LOCALAPPDATA%\SeleniumBasic

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をコピーしました