はじめに
TinySeleniumVBAを機能拡張したSeleniumVBAですが、Ver2.0からアドイン化されていました。
アドイン化されたことで、慣れてないとプログラムの組み方が分からない方が出てくるので使用方法を説明をします。
【2024/09/04追記】
しばらく見ないうちに 5.x版まで上がっていました。今はインストーラが用意されている。
23 年 8 月にリリースされた 4.4 版からこれが ActiveX DLL で提供されだしたようだ。VBA と互換性のある BASIC コンパイラ twinBASIC で作成されている、との事。このライブラリはインストーラを用いてインストールされる。
https://www.flumen-jp.com/wordpress/index.php/2024/04/30/seleniumvba/
アドインについて
アドインのメリット・デメリット
メリット
・一度追加すると、どのブックであっても拡張された機能を使用できる
・ブックに、新規にマクロを追加する必要がない
・拡張機能のon/offを手軽に行える
デメリット
・機能を追加するために、インストールと組み込みが必要
・アンインストールに手間がかかる
・アドインの作成しだいでは不具合が起こる
・Excelの起動に若干時間がかかるようになる
https://excel.syogyoumujou.com/vba/addin.html
アドイン化することで、どのブックであってもSeleniumVBAを使用することが出来ます。
一方でマクロファイルだけの配布ですぐ動かせたのに、アドイン化することで最初だけアドイン設定をしてもらう必要があります。
配布に関しては下記サイトのように、社内であれば共有フォルダにSeleniumVBA.xlamファイルを置いて参照してもらうようにすれば、SeleniumVBAがバージョンアップした際にすぐに反映されます。
導入方法
ダウンロード
下記サイトのSeleniumVBA.xlamリンク先からDownloadボタンをクリックするとzipファイルがダウンロードされます。
SeleniumVBA.xlamアドインを、VBAプロジェクトからアクセスできるフォルダーに解凍してコピーします。
セキュリティ対応
SeleniumVBA.xlamファイルのプロパティにて「許可する」にチェックを付けてください。
これをしないとアドインが入っているのに読み込まれないとハマることになります。
Excel アドインで「有効なアドイン一覧でチェックが入っているのに、アドインが読み込まれない」場合の対応
Excelのアドイン登録
ExcelのオプションのアドインからSeleniumVBA.xlamファイルを参照してアドイン登録してください。
SeleniumVBAの参照
VBAProjectにて、新規で標準モジュールを追加します。
参照設定でSeleniumVBAにチェックを付けます。
SeleniumVBAが参照に出てこない場合、上述したセキュリティ対応のSeleniumVBA.xlamファイルのプロパティにて「許可する」にチェックを付けるてください。
サンプルプログラム
サンプルプログラムとして、下記サイトの「Googleで検索する際のコード」をアドイン用に書き換えました。
Sub sample()
Dim mngr As SeleniumVBA.WebDriverManager
Dim driver As SeleniumVBA.WebDriver
Dim keys As SeleniumVBA.WebKeyboard
Dim keySeq As String
Set driver = SeleniumVBA.New_WebDriver
Set keys = SeleniumVBA.New_WebKeyboard
Set mngr = SeleniumVBA.New_WebDriverManager
'MsgBox mngr.AlignChromeDriverWithBrowser()
'MsgBox mngr.AlignEdgeDriverWithBrowser()
Set driver = SeleniumVBA.New_WebDriver
'Chromeを選択してブラウザを開く
driver.StartChrome
'driver.StartEdge
driver.OpenBrowser
'Googleを開く
driver.NavigateTo "https://www.google.com/"
driver.Wait 1000
'This is coolとリターンキーを入力する
keySeq = "This is COOL!" & keys.ReturnKey
driver.FindElement(by.Name, "q").SendKeys keySeq
driver.Wait 2000
End Sub
記述の変更点
Dim driver As New WebDriver
Dim mngr As New WebDriverManager
Dim keys As New WebKeyboard
1.名前空間としてSeleniumVBA.
を付ける。
2.New
する場合は接頭辞New_
を付ける。
Dim driver As SeleniumVBA.WebDriver
Dim mngr As SeleniumVBA.WebDriverManager
Dim keys As SeleniumVBA.WebKeyboard
Set driver = SeleniumVBA.New_WebDriver
Set mngr = SeleniumVBA.New_WebDriverManager
Set keys = SeleniumVBA.New_WebKeyboard
実行結果
最後に
TinySeleniumVBAの機能拡張したSeleniumVBAですが、開発が活発に行われています。
SeleniumBasicは、2016年で更新が停止されていますしインストールが必要なソフトウェアです。昨今ではセキュリティーの関係でソフトウェアのインストールが出来ない企業が増えています。
このことからもSeleniumBasicに劣らない機能を持っていて、インストール不要なSeleniumVBAに切り替えるようにするといいでしょう。