Webサイトから定期的に情報を取得したい」「Web上のフォームに毎回同じ内容を入力するのが面倒だ」——そんな定型作業を自動化できたら、と思ったことはありませんか?
Excel VBAと「SeleniumBasic」を組み合わせることで、こうしたWebブラウザ上の操作を驚自動化できます。
この記事では、SeleniumBasicの導入から、実際にVBAでブラウザを操作する最初のステップまで解説します。
まずSeleniumとは
Seleniumは、Webブラウザの操作を自動化するためのフレームワーク。もともとはUIテスト用に開発されましたが、RPAやスクレイピングにも活用可能です。
- 対応言語:Python、Java、Ruby、VBAなど
- 対応ブラウザ:Chrome、Edge、Firefox
そしてSeleniumBasicは、そのSeleniumをVBAのクラスで利用できるようにするためのモジュールです
オープンソースなので無料で利用でき、学習コストこそかかるもののよくあるRPAツールのようなイニシャル/ランニングコストはかかりません
SeleniumBasicのインストール手順
インストーラーを実行するだけの簡単な操作ですが
インストーラーのダウンロード
GithubからSeleniumBasicのインストーラーをダウンロード
最終更新が2016年3月と古いですが、特に脆弱性があるわけでもなく今も広く利用され続けていますので特に気にせずダウンロードしてください

インストーラーの実行
SeleniumBasicに限らずどのアプリにも言えることですが、”管理者としてインストール“(右クリックして”管理者として実行”を選択)するか、”ユーザーとしてインストール“(普通にダブルクリック)するかでインストール先フォルダが変わります
利用する上ではどちらでも特に影響はなく、セキュリティ的にはなるべく権限を絞るの方がいいので迷ってる場合はユーザーとして実行した方がベター
インストール手順
改めてここからインストール手順
最初の画面は無心で「Next」をクリック

ライセンス契約が気になる人は一読しつつ、「I accept the agreement」を選択して「Next」をクリック

インストール対象の選択画面
今は利用できないInternet ExplorerやPhantom JSのドライバーもありますが、インストールしただけで何か影響が出るわけでもないのでそこまで気にせず必要なものを選択

最終確認画面
ココにインストール先のフォルダが表示されているのでチェック
- 管理者・・・C:\Program Files\SeleniumBasic
- ユーザ・・・C:\Users\<ユーザー名>\AppData\Local\SeleniumBasic

無事完了

chromedriverの更新
インストールした直後のchromedriverのままSeleniumを利用するとVBAから怒られます

chromedriverの特徴として日頃使ってるchromeのバージョンに合わせたドライバーが必要で、初期のドライバーが古すぎてバージョンが合わないよってこと
というわけでchromedriverの更新が必要なので手順を紹介
※※プログラムで自動更新もできますので気になる方は最下部へ※※
chromeのバージョン確認
まず今使っているchromeのバージョンの調べ方は「Chrome右上の︙ → ヘルプ → Google Chromeについて」設定画面を開くと見れます


chromedriverのバージョン確認
続いてchromedriverのバージョンの調べ方はインストールフォルダにある「chromedriver.exe」を実行するとコンソール画面が立ち上がってバージョンが表示されます

※インストール時以外にもchromeが起動時に自動更新されるのに比べてchromedriverは前述の通り自動更新されないためバージョン不一致が発生することがあります
chromedriverの更新方法
更新と言っても実際は違う対象バージョンのchromedriverアプリと入れ替えを行います
↓↓から今使っているchromeのバージョンに合わせたドライバーをダウンロードします
もしCurrent Releasesの中になかったら下部にも古いバージョンがあるのでそこからダウンロード
chromedriverでOSに合わせてURLを直接叩いてダウンロードを

ダウンロードしたzipを解凍すると「chromedriver.exe」が取得できるのでSeleniumBasicをインストールしたフォルダにあるドライバーを上書き更新


使っているPC環境に合わせてドライバーをダウンロード
Windowsは32bitも64bitもwin32でOK

.NET Framework 3.5をインストール
.NET Framework 3.5がないとインスタンスを作ろうとしたときにオートメーションエラーが発生する場合があるので対応を

正攻法でMicrosoftのWEBサイトからダウンロードしてインストールする場合はコチラから
他に簡単な方法としてSeleniumBasicフォルダ内のScriptsフォルダにある「StartChrome.vbs」を実行してあげればエラーメッセージとともに.NET Framework 3.5のインストール画面が出てくるのでそのままインストールしてあげるだけ

既に.NET Framework 3.5がインストールされている場合は空のchromeが立ち上がってメッセージが出てきます

ちなみにStartChrome.vbsの中身はこれだけ
「Set driver = CreateObject(“Selenium.ChromeDriver”)」で発生するエラーに反応して.NET Framework 3.5のインストールを促してくれるんだろうから「流石MS!」と思いつつ、「だったらVBAでもそうしてくれよ・・・」と不満を吐いてみる
Set driver = CreateObject("Selenium.ChromeDriver")
driver.Start
WScript.Echo "Click OK to quit"
driver.Quit
msedgedriverの更新
chromeだけじゃなくedgeでも同じ話でして、当然ながらドライバーのインストールサイトが違うのでedgeの場合はこちら
各チャネルの最新版はページ中央に、過去版含めたバージョン別のドライバーその下にあります


あとがき
VBAの場合はここまでやって利用準備完了
ちなみにchromedriverの更新は結構頻度が高くて面倒なのでプログラムでチェックした方が吉
私自作のプログラム公開しているので気になる方はこちらへどうぞ!
コメント