目的
Windows7のサポートが切れる。即ちIEの死期が近づく。即ちIEを使っているExcelVBAの死期が近づく。
・・・・
そうだ。Edgeを操作しよう!
ExcelVBAもさっさと死んでPython標準搭載になってくれ
準備
Selenium Basicのインストール
Selenium Basicをインストールする。怪しいソフトはインストールできない?諦めよう。
執筆時点ではv2.0.9.0が最新だった。
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
EdgeDriverの更新
最新のEdgeDriverを入れないと動かなくなるぞ!
C:\Users\?ユーザー名?\AppData\Local\SeleniumBasic\Scripts
の中にedgedriver.exeってのがあるので、最新版と差し替える。
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
.NetFramework3.5のインストール
C:\Users\?ユーザー名?\AppData\Local\SeleniumBasic\Scripts
の中にある、StartEdge.vbs
をダブルクリックすればインストールできる。わかる人はWindowsの機能の有効化または無効化
から追加してもよい。でもユーザに説明するのメンドイからおとなしくvbsクリックさせよう。
グループポリシーでvbsが実行できない?Windowsの機能の有効化または無効化
の方法をアナウンスするか諦めよう。
参照設定の追加
Visual Basic Editorを開いて、参照設定からSelenium Type Libraryを追加する。
もしそんなもんねぇよ!っていう人は、SeleniumBasicをインストールした後に、再起動してみよう。
(自分の場合はExcel再起動で出てきた)
実装
Option Explicit
Public Sub Main()
Dim driver As Selenium.EdgeDriver
Set driver = New Selenium.EdgeDriver
With driver
.Start
.Get "https://www.google.com/"
.FindElementByName("q").SendKeys ("テスト検索なんだぜ")
.FindElementById("tsf").submit
Debug.Print .FindElementById("resultStats").Text
.Quit
End With
End Sub
出力
約 24,400,000 件 (0.33 秒)
ね、簡単でしょ。
SI的結論
.NetFramework3.5をインストールしなきゃいけない
⇒基本これを求めるところはふるーい資産大好きなのでデフォで入ってそう
EdgeDriverの更新が必要
⇒どれくらいの頻度あるかしらんけどWSUSでパッチ配信作業があるたびに検証しなきゃいけないの?無理ぽぉ。動かなくなった!っていうクレームもうざそう
Selenium Basicいれなきゃいけない
⇒それならちゃんとした環境整えるね。
あきらめよう
抜け道
Selenium.IEDriverっちゅうのもある。
これでIEが操作できるZo!
IEが死んでもオブジェクト差し替えるだけなので、まぁ既存のを使い続けるよりは安全かも?いや目糞鼻くそか…。