スポンサーリンク

【SeleniumVBA】(2022年11月版)初心者向けに導入方法についてわかりやすく説明します(Excel VBA)

VBAスクレイピング
  • ソフトがインストールできないのでSelenumBasicが使えない
  • TinySeleniumVBAではメソッドが足りない
  • TinySeleniumVBA,SeleniumBasicとかって何?

そういった方向けに今回SeleniumVBAの導入方法についてわかりやすく説明します。

初めての方でも躓かないように図を多くいれていますので安心して読んでいってください。

2022年9月にSeleniumVBAはアドイン化されました。その為その導入方法は以下2通りとなります。

  • アドインからインストールする
  • 参照設定からインストールする

アドインからのインストール方法は@yajuさんが詳しく説明してくださっていますのでこちらをご参考ください。

今回はアドインって何?アドインまではいらないという方向けに参照設定からの導入方法について説明します。

スポンサーリンク

SeleniumVBAについて

SeleniumVBATinySeleniumVBAを修正・拡張したものです。

SeleniumBasicのようにソフトをインストールする必要がなく、ChormeDriverのみでの自動化が可能になっています。

@GCuser99さんによって作成されています。

今回は参照設定から導入する方法について説明します。

seleniumVBA.xlamの入手

SeleniumVBAのアドインを入手するには以下の手順で行います。

1 Githubにアクセスする

2 ページ中盤のSetupのところにある「SeleniumVBA.xlam」をクリックする

クリックすると拡大します

2 「Download」をクリックする

クリックすると拡大します

3 解凍し、保管したいフォルダに置く
4 SeleniumVBA.xlamファイルを右クリックし、プロパティをクリックする。
セキュリティの部分について「許可する」のチェックボックスをいれる(環境によっては入れなくてもOKですが、入れておきます)

クリックすると拡大します


5 VBEの画面で、「ツール」タブ、「参照設定」をクリックする。参照設定ウィンドウで「参照(B)」をクリックする

クリックすると拡大します

6 先ほど入れたSeleniumVBA.xlamのフォルダを参照し、ファイルの種類をMicrosoft Excel Files(*.xlsm, *.xlam・・・)」にする。出てきた「SeleniumVBA.xlamファイル」を選択する

クリックすると拡大します

7 参照設定ウィンドウに「SeleniumVBA」が追加されたことを確認し、「OK」をクリックする

クリックすると拡大します

VBEの自身のプロジェクトに参照設定SeleniumVBA(SeleniumVBA.xlam)が追加されていればOKです。

クリックすると拡大します

ChromeDriverの入手

1 Chromeブラウザを開き、右上の「3点リーダー」をクリックする。「ヘルプ」-「Google Chomeについて」をクリックする

クリックすると拡大します

2 現在のバージョンを確認する(図は103.5060.134となっている)

クリックすると拡大します

3 ChromeDriverのサイトにアクセスする
4 同じバージョンのものをクリックする(該当するものがなくても最初のバージョン(ここでは103)があっていればよいと思われる。サイト内にはマイナーチェンジのバージョンのものもある)

クリックすると拡大します

5 windows版(win32.zip)をダウンロードする

クリックすると拡大します

解凍して以下が取れていればOKです。

クリックすると拡大します

ChromeDriverの保存

1 先ほど入手したChromeDriverSeleniumVBA.xlamアドインと同じ階層にいれる

クリックすると拡大します

次項でWebDriverの設定をしますが、パスの指定をエクセルと同じフォルダにしています。
別のフォルダでも問題ないですが、その際はパスを指定する必要があります。

WebDriverを自動更新する

SeleniumVBAにはWebDriverを自動更新する為のクラスWebDriverManager.cls」が存在します。

これを使用するには以下のコードを最初に記載します。

Sub sample()

    Dim driver As SeleniumVBA.WebDriver
    Dim mngr As SeleniumVBA.WebDriverManager
    Dim driverPath As String
    
    Set driver = SeleniumVBA.New_WebDriver
    Set mngr = SeleniumVBA.New_WebDriverManager

    'WebDriverを自動更新するWebDriverManagerクラスを使用する
    driverPath = ".\chromedriver.exe"
    mngr.AlignChromeDriverWithBrowser driverPath

WebDriverManagerクラスAlignDriverWithBrowserメソッドでChromeのバージョンとインストールしているWebDriverのバージョンを比較し、異なっていたらインストールするようにしています。

Googleで検索する際のコード

WebDriverManagerでChromeDriverのバージョンを確認をしたのちに、Googleで検索するコードは以下になります。

Sub sample()
    
    Dim driver As SeleniumVBA.WebDriver
    Dim mngr As SeleniumVBA.WebDriverManager
    Dim driverPath As String
    Dim keys As SeleniumVBA.WebKeyboard
    Dim keySeq As String
   
    Set driver = SeleniumVBA.New_WebDriver
    Set keys = SeleniumVBA.New_WebKeyboard
    Set mngr = SeleniumVBA.New_WebDriverManager

   'WebDriverを自動更新するWebDriverManagerクラスを使用する
    driverPath = ".\chromedriver.exe"
    mngr.AlignChromeDriverWithBrowser driverPath
     
    '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

最初の数行はWebDriver更新用のコードです。

以降のコードについては次回以降で説明しますが、これでスクレイピングができるようになります。

今回のまとめ

今回はインストール不要なSeleniumVBAの導入方法について説明しました。

SeleniumVBA.xlamのインストールChromeDriverのインストールだけで使用することができるようになっています。

次回はSeleniumVBAで実行できる操作について説明します。

ソフトのインストールは必要となりますが、SeleniumBasicはメソッドやプロパティのリファレンスがあり初心者にはわかりやすいソフトとなっています。SeleniumBasicについて勉強されたい方は以下の記事もお勧めです。

またSeleniumBasicについては以下の書籍もあります。どちらもSeleniumの使い方について詳しい説明がなされているのでお勧めです。

VBAを使ったものではありませんが、Seleniumを勉強する為の基本的な書籍です。ブラウザやキー操作の基本的なコマンドは共通していますのでコードを書く際の参考になります。

VBAの書籍の中でSeleniumBasicを取り上げている数少ない書籍です。ページ数としては20ページほどですがとてもわかりやすく書かれています。またVBA全般を網羅した内容が書かれており、長く使用することができます。

SeleniumVBAに関する記事はこちら
【SeleniumVBA】初心者向けに導入方法についてわかりやすく説明します(Excel VBA)
【SeleniumVBA】スクレイピングで使うメソッドについて説明します。
【SeleniumVBA】Yahooメールへのログイン方法をわかりやすく説明する(Excel VBA)
【SeleniumVBA】スクレイピングで使うメソッドについて説明します2(Excel VBA)
【SeleniumVBA】スクレイピングをする為のメソッド一覧表
【SeleniumVBA】ブラウザを操作するメソッドについてサンプルコードを紹介します
【SeleniumVBA】2022年9月の更新に伴うコードの変更点について説明します。
【SeleniumVBA】アラート処理に関するメソッドについてコードを紹介します
【SeleniumVBA】待機処理に関するメソッドについてコードを紹介します

コメント

タイトルとURLをコピーしました