VBAからEdgeなどをコントロールする(準備)
あまりやりたくはないのだが、久しぶりにExcelからVBAでブラウザをコントロールして作業の自動化をしないといけなくなった。
調べてみるとIEでは(これはこれでかなり面倒だが)標準でできたが、Edgeに移行するとどうもそうはいかないようだ。
今時はWebDriverということで、それに対してHTTPでリクエストすれば良いらしい。
そのためのドライバーがそれぞれのブラウザ毎に用意されており、EdgeであればMicrosoftが用意している。
つまり、ここまでは怪しげなソフトを入れる必要は無い。
ただ面倒なのはEdgeをバージョンアップするごとにこのEdgeDriver(Edge版のWebDriver)もインストールし直す必要がある様子。
言うまでも無いが、Webブラウザはきちんと最新のものにしないと酷い目に遭うので古いままに使うという選択肢はない。
ではHTTPでリクエストする、というのはVBAでは追加プログラム(アドイン)を入れねばならない。これは標準品ではない。
世間様一般はどうしているかと検索してみると、SeleniumBasicというVBAのアドインを使っているようだ。
どちらが良いかは難しい選択である。汎用性では前者だが、結構プログラムは煩雑になる。ラッパーなりを作る必要がある。またWebプロトコルで叩くと言っても、欲しい制御を知ることが大変そうだ。
後者は簡単だが、継続性に難点があるかも知れない。SeleniumVBAを継承してSeleniumBasicという経緯からも、諸行無常である。
今回は安易に流れてSeleniumBasicで行くことにした。継続性より即効性が重視されるためだ。使い捨てになる可能性もあるし。
インストールに関するメモ書きだけしておく。
- SeleniumBasicで検索してダウンロードする。インストーラー実行ファイルなので実行してインストールする。
- Edgeの場合ならMicrosoft EdgeDriverで検索して最新版をダウンロードする。32bit版/64bit版を間違えぬように。zipファイルなので解凍するとmsedgedriver.exeというドライバファイルがある。
- C:\Users\[ユーザー名]/AppData/Local/SeleniumBasicフォルダを開く。AppDataは隠しフォルダなので注意。
- そのフォルダにはedgedriver.exeというファイルがあるが、これは古いファイルなので使い物にならない。よって2でダウンロードしたドライバファイルを上書きする。名前が違うのでリネームして上書き。
- Excelを起動して開発IDEのツール-参照設定からSelenium Type Libraryを探してチェックを入れる。
以上で準備は完了。サンプルプログラムを拾ってきて動かしてみれば良い。
例えば以下のようなもので開けば成功。
Sub sample()
Dim drv As New Selenium.EdgeDriver
drv.Start
drv.Get "https://www.google.com/"
Stop
End Sub




最近のコメント