Excel VBAでWebスクレイピングをする場合にIEを使う方法があるのですが、なんとなくIEを使うことに抵抗があったりしませんか?
Seleniumを使うことでChromeを起動させることができるようになります。
そして実際にWebページをスクレイピングするコードも簡単に書けるので非常に便利です。
今回は環境の準備として、SeleniumをインストールしてVBAでChromeを起動させてみます。
データの取得についてはこちら
Seleniumをインストール
SeleniumはGithubで公開されています。
「Release page」をクリックすると、最新版のページが開きます。
本記事のエントリー時点での最新版は「SeleniumBasic v2.0.9.0」です。
「SeleniumBasic-2.0.9.0.exe」をダウンロードします。
ダウンロードした「SeleniumBasic-2.0.9.0.exe」を起動してインストールします。
特に特殊な設定とかはないので画面の指示通りに進めてください。
ChromeDriverをインストール
ChromeDriverを以下のサイトからダウンロードします。
Googleのサイトなので私のように中国にいる場合はアクセスできません。
日本や香港などのVPNサーバ経由でアクセスしてください。
私はAWSを使って、VPNサーバを東京リージョンに構築しています。
使っているChromeのバージョンに合うものをダウンロードしてください。
そうするとバージョンが表示されます。
本記事のエントリー時点でバージョンは「94.0.4606.54」でした。
ダウンロードしたChromeDriverをSeleniumのインストールフォルダに上書きします。
Seleniumのインストールフォルダは「C:\Users\(ログインしているユーザ名)\AppData\Local\SeleniumBasic」です。
VBAでChromeを起動させる
VBAでSeleniumを使う準備が整ったので、実際にVBAからChromeを起動させてみます。
参照設定
VBAでSeleniumのライブラリを使えるように参照設定を行います。
「ツール」→「参照設定」を開きます。
「Selenium Type Library」にチェックを入れて、「OK」をクリックします。
Chrome起動
Chromeを起動して、Yahooのトップページを開きます。
Sub OpenYahoo() Dim Driver As New Selenium.WebDriver Driver.Start "Chrome" Driver.Get "https://www.yahoo.co.jp" Stop Driver.Close Set Driver = Nothing End Sub
StopコマンドでChromeが起動していることを確認しています。
バージョンが異なるChromeDriverを使うと…
Chromeのバージョンと異なるChromeDriverを使うとエラーになるので注意してください。