LoginSignup
7
10

More than 1 year has passed since last update.

【Excel】SeleniumVBAがアドイン化されました

Posted at

はじめに

TinySeleniumVBAを機能拡張したSeleniumVBAですが、Ver2.0からアドイン化されていました。
アドイン化されたことで、慣れてないとプログラムの組み方が分からない方が出てくるので使用方法を説明をします。

アドインについて

アドインのメリット・デメリット

メリット
・一度追加すると、どのブックであっても拡張された機能を使用できる
・ブックに、新規にマクロを追加する必要がない
・拡張機能のon/offを手軽に行える
デメリット
・機能を追加するために、インストールと組み込みが必要
・アンインストールに手間がかかる
・アドインの作成しだいでは不具合が起こる
・Excelの起動に若干時間がかかるようになる
https://excel.syogyoumujou.com/vba/addin.html

アドイン化することで、どのブックであってもSeleniumVBAを使用することが出来ます。
一方でマクロファイルだけの配布ですぐ動かせたのに、アドイン化することで最初だけアドイン設定をしてもらう必要があります。

配布に関しては下記サイトのように、社内であれば共有フォルダにSeleniumVBA.xlamファイルを置いて参照してもらうようにすれば、SeleniumVBAがバージョンアップした際にすぐに反映されます。

導入方法

ダウンロード

下記サイトのSeleniumVBA.xlamリンク先からDownloadボタンをクリックするとzipファイルがダウンロードされます。
SeleniumVBA.xlamアドインを、VBAプロジェクトからアクセスできるフォルダーに解凍してコピーします。

セキュリティ対応

SeleniumVBA.xlamファイルのプロパティにて「許可する」にチェックを付けてください。
これをしないとアドインが入っているのに読み込まれないとハマることになります。
image.png
Excel アドインで「有効なアドイン一覧でチェックが入っているのに、アドインが読み込まれない」場合の対応

Excelのアドイン登録

ExcelのオプションのアドインからSeleniumVBA.xlamファイルを参照してアドイン登録してください。
image.png

SeleniumVBAの参照

VBAProjectにて、新規で標準モジュールを追加します。
image.png
参照設定でSeleniumVBAにチェックを付けます。
image.png

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

実行結果

image.png

最後に

TinySeleniumVBAの機能拡張したSeleniumVBAですが、開発が活発に行われています。
SeleniumBasicは、2016年で更新が停止されていますしインストールが必要なソフトウェアです。昨今ではセキュリティーの関係でソフトウェアのインストールが出来ない企業が増えています。
このことからもSeleniumBasicに劣らない機能を持っていて、インストール不要なSeleniumVBAに切り替えるようにするといいでしょう。

7
10
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10