大人の教養サロン

大人の教養サロンのテーマに関する記事や有益情報のまとめをしていきます。

VBAでEdgeを使用する方法 ①準備編

f:id:kyoyo_salon:20210302140650p:plain

前提

  • ChromiumベースのEdgeが対象
  • 本記事作成時のEdgeのバージョンは88.0.705.74 (公式ビルド) (64 ビット)

Step 1. Selenium Basicの入手

Selenium BasicはVBAなどで制御するためのライブラリ。

こちら からダウンロード

  • 開いたページ内の「.exeファイル」をダウンロードする
  • 本記事作成時のファイル名は「SeleniumBasic-2.0.9.0.exe」

ダウンロード後は基本規定値のままインストールをする。こだわりがあれば規定値から変更する。インストール先の規定値は「%LOCALAPPDATA%\SeleniumBasic」となっている。エクスプローラのアドレスバーにこれをコピペすると直接アクセス可能。

Step 2. ブラウザのバージョンと合ったドライバを入手

ChromeやEdgeのドライバは最新版に対応していないため、別途ダウンロードする*1。ブラウザのバージョンとドライバが対応していない場合はVBA実行時に実行時エラーが発生するため事前に確認して入手しておく*2

Chromeの場合はこちらから。

Edgeの場合はこちらから。

ダウンロードをしたら.zipファイルを展開して中のドライバ*3をStep 1のインストール先フォルダに保存する。

《重要》このとき「msedgedriver」を「edgedriver」に変更すること*4

Step 3. VBEの参照設定

マクロブック(.xlsmのファイル)を準備する。VBE(マクロを書くところ)を開いたらメニューバー > ツール > 参照設定を開き「Selenium Type Library」を参照する(=チェックを入れる)。

Step 4. 動作確認

やりたいことができる環境であるかを確認する。以下はYahoo Japanで「大人の教養サロン」を検索するマクロコード。これを実行して意図した通りになるかを確認する。

Sub Edge_Macro_01()
 Dim driver As New Selenium.EdgeDriver
 With driver

  'ヤフーを開く
  .Get "https://www.yahoo.co.jp/"

  '検索ワードを入力
  .FindElementByName("p").SendKeys ("大人の教養サロン")

  '検索ボタンクリック ※ここではSubmitの部分はClickでもOK
  .FindElementByClass("PHOgFibMkQJ6zcDBLbga8").Submit

  'マクロが終了するとEdgeも終了するために一時停止をしている。
  Stop

  'ドライバを終了
  .Quit
 End With
End Sub

 以上で準備完了! 

*1:ChromeやEdgeの設定画面でバージョンを確認して対応したドライバをダウンロードする。

*2:将来実行時エラーが発生した場合はこのことを思い出して対応したドライバを入手すること。

*3:本記事作成時はファイル名は「msedgedriver」、ファイルの種類は「アプリケーション」、ファイルサイズは「12,036KB」

*4:SeleniumBasicは2016年で更新が止まっている。以前のEdgeのドライバである「edgedriver」という名前は認識するが、新しいEdgeのドライバである「msedgedriver」という名前は認識をしない。よって名称のみ以前のものに変更する。