こんにちは、blueです。
最近日に数PVある以下の記事、WebDriverのバージョン問題です。

私も非常に面倒と思っていたら以下の記事を見つけました。
やまとさんというVBA(に限らず)つよつよさんが自身で作られたそうです。
WebDriverManagerというソフトを入れれば自動更新してくれるという話は最近出ていたのですがVBA版はなかったので残念と思っていたらすぐ作られていました(すごい)。
なので早速入れてみました。
~2022年4月22日追記~
2022年4月21日に修正がなされています。この修正により毎回ではなくWebDriverが最新版でないときのみ更新されるようになりました。
WebDriverManager for VBAのインストール方法
以下のサイトからWebDriverManager for VBAをインストールしていきます。
・「Code」をクリックして「Download ZIP」をクリックする

・得られたZipファイルを展開し、 WebDriverManager4SeleniumBasic.basがあることを確認する。

・WebDriverManager4SeleniumBasic.basファイルを目的のVBEの標準モジュールにドラッグアンドドロップする

これで終了です。
あとは「Driver.Start ”chrome”」(EdgeはDriver.Start “Edge”)の部分を

「SafeOpen Driver, Chrome」(EdgeはSafeOpen Driver, Edge)に書き換える

すると・・・・
入れる前の状態は以下であったのが

以下のように無事開かれるようになります。

ここでどういう動きをしているかなど詳細は以下をご確認いただいたほうが良いと思います。
なおイミディエイトウィンドウでインストールの状況がみれるようになっています(親切😊)。
ここでのまとめ
ChromeDriver, EdgeDriverのバージョン問題はWebDriverManager for VBAをインポートすることで解消されます。
今後は手動で入れ替える必要がなくなるのでぜひインポートしてください。
↓困ったときは以下が頼りになります。私も利用させてもらってます😊。
Selenium-VBAでのWebスクレイピングに関する記事はこちらをどうぞ
Web-APIを用いたデータ取得に関する記事はこちらをどうぞ
【VBA】Web APIを使ってデータを取得する(OpenWeatherMap)1
【VBA】Web APIを使って時間別天気予報を取得する(気象庁API)
【VBA】Web APIを使ってLINE通知を行う(LINE Notify)1
コメント
こんにちわ。こちらに掲載されていたこのwebdriver自動更新コードのおかげで、面倒なドライバーの更新が自動化され、大変重宝しております。
ありがとうございました。
ところで質問なのですが、適正なドライバーが既にダウンロードされていた場合は、ダウンロードしないようなバージョンなどはあるのでしょうか?
ご質問ありがとうございます。
作成者の方は存じており、話したこともあるのですがうまく最新バージョンかどうかを判別できないので
削除→再インストールをするようにしたと言われてました。
FileSystemObjectの部分は見て分かるのですがほかのAPIも使われていたりするのでよくわかりませんでした・・・
ご期待に沿えずすみません。
こんにちわ。
丁寧なご返信ありがとうございます。
そうでしょうね。まあ、VBA初級の自分が思いつくことなので、当然作られた方は気づいてらっしゃるとは考えていましたが、
でも、面倒なドライバーの更新が自動で行われるだけでも非常に有難いです。
テクニックが上級すぎて、コードの内容はさっぱりわかりませんでしたが。
ありがとうございました。
ありがとうございます。
ファイルの存在可否はコード中も存在しているのでできるはずなのですが、きっと難しいんだと思います・・・。
軽くもう一度聞いてみます。
ちょうど話題に出たので修正してみました。やり方は少し違いますが求めていることはできていますので記事をご確認ください。やまとさんはそのうちWebDriverManagerも更新するっておっしゃってました^^
お世話になります。やまとさんが更新くださいました。ドライバーの更新は必要な時にだけ行われるようになりました。入れなおしてみてください
ありがとうございます!
ドライバーの更新だけでもとてつもなく有難いのに、必要な時だけダウンロードされるように仕様変更してくださるとか、嬉しすぎます。
現在、Selenium BasicによるChromeによるWEBスクレイピングが必須となる業務に携わっており、このDriverManagerをとても重宝して使わせていただいております。
お金を払ってもいいレベルのユーティリティーなのに有難すぎます!
早速、試してみたいと思います。
よかったです。引き続きよろしくお願いします。