LoginSignup
6
9

More than 5 years have passed since last update.

Selenium Basicを使って、Excel VBAからEdgeを操作する

Last updated at Posted at 2019-04-06

目的

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が死んでもオブジェクト差し替えるだけなので、まぁ既存のを使い続けるよりは安全かも?いや目糞鼻くそか…。

6
9
1

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
6
9