前置きはさておいて
VBAでEdge操作するために環境構築した手順を書いてみます
①SeleniumBasicのインストール
https://florentbr.github.io/SeleniumBasic/
https://github.com/florentbr/SeleniumBasic/releases/download/v2.0.9.0/SeleniumBasic-2.0.9.0.exe
②SeleniumBasic付属の古いDriverを更新
※これをしないとVBA実行時タイムアウトエラー
②-1自分のEdge(ブラウザ)のVersionに対応したドライバをダウンロード
https://learn.microsoft.com/ja-jp/microsoft-edge/webdriver-chromium/?tabs=c-sharp
https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/
②-2 ②-1のファイルを Seleniumフォルダ内のDriverと差し替え
パスは通常 C:\Users\●●●\AppData\Local\SeleniumBasic.edgedriver.exe
③Selenium参照設定
vbe-ツール-参照設定-Selenium Type Library
④.NET Framework 3.5の有効化
※↑これをしないとVBA実行時オートメーションエラー
今回主に参考にさせて頂いたサイトは↓こちらです。<(_ _)>
https://vba-create.jp/vba-selenium-install/
https://www.ka-net.org/blog/?p=11677
①~④の手順を踏んでようやく
edgeの起動
指定URLへ移動
といった初歩のコードが動くようになりました~。
ほっとしたのも束の間、セレクトボックスからプルダウンで値を選択するという
割と基本的っぽいコードが通らない。
で見てみるとVBAから開いたサイトでは
手動で開いた時とサイトの見た目も微妙に違うし
「開発者ツールで調査する」で表示される内容も違う。
ブラウザに
"Microsoft Edge は、自動テスト ソフトウェアによって制御されています。"
とか表示されていたので、これが原因か?と思いググって
driver.SetCapability "ms:edgeOptions", "{""excludeSwitches"":[""enable-automation""]}"
を入れてみるも今だ解決せず。
うーん。引き続き闘います。
<追記 ここから>
その後「セレクトボックスからプルダウンで値を選択する」という基本コードは
通るようになりました。
”Microsoft Edge は、自動テスト ソフトウェアによって制御されています。"
と表示される事とは全然関係なかったみたいです。
当初なぜエラーになったのかは分かりません。。結果オーライと言っていいのやら。
<追記 ここまで>
~以下、この記事を書くことになった経緯とかるいボヤキです ^^;
ブラウザ操作の自動化って正直気が進まない、
関わりたくない仕事の1つだったりするのですが
関わりたくないから関わらずにすむ訳でもなく。
今回のミッションは
ie時代に動いていた(と思われる)
VBAで書かれたツールをEdge用に書き直してね
というもの。
ああ、断れるものなら断りたい(←後ろ向き)
ざっと調べたところvbaでedge操作するには自分の場合は
A.Selenium
B.DOM
の2択でした。
(他にはSendKeyを使う、なんて案もありました)
この2択で迷った末、なんとなく情報量が多そうなSeleniumを選択。
この選択、はたして吉だったのでしょうか。。