SeleniumBasic(旧VBA)◆自動でブラウザ操作、スクショをExcelに連続張り付け

 

 

SeleniumBasic(旧VBA)◆自動でブラウザ操作、スクショをExcelに連続張り付け - ハテブカスタム

URLのリストから連続してWebページのスクショを撮り、Excelに貼り付けていく作業を自動化します。SeleniumBasic(旧Selenium VBA)を使います。

ここのところ日差しめちゃ強い!外出に日よけ対策必須ですね。


最近、クラウドワークスさんで下記のようなお仕事の募集案件がありました。 

Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けるサンプル実装」 

これをじっさいの実務として実装してみるつもりで、Seleniumの勉強がてら、試しにやってみました。
Selenium VBAとは、Google ChromeやFireFoxなどのWebブラウザを自動操作できるExcelのVBAライブラリのことです。
SeleniumはPythonにもあるライブラリですが、それのマクロ(VBA)版、といったところでしょうか。 

 

SeleniumBasicのインストール

Selenium VBAは旧名称

まず、Selenium VBAは旧名で、2015年にSeleniumBasicという名称に変更されたようです。
また、現在はWindowsのみの対応のようです。

最新のSeliumBasicは、こちらからダウンロードできます。

Release SeleniumBasic v2.0.9.0 · florentbr/SeleniumBasic · GitHub

「SeleniumBasic-2.0.9.0.exe」をクリックしてダウンロード後、ファイルをダブルクリックすればインストールが始まります。

 

インストール後、Excelを起動し、「Alt」+「F11」でVBAエディタを開きます。
メニューの「ツール > 参照設定」から、「Selenium Type Library」にチェックを入れます。

これで、SeleniumBasicが利用できるようになりました。

excel vba seleniumbasic

 

Internet Explorer側の設定をする

SeleniumBasicでIE(インターネットエクスプローラー)を操作するためには、IE側の設定が必要です。

InternetExplorerDriver · SeleniumHQ/selenium Wiki · GitHub

下記はRequired Configuration(必要な設定)を自動翻訳し、抜粋したものです。

  • Windows VistaまたはWindows 7上のIE 7以降では、各ゾーンの保護モード設定を同じ値に設定する必要があります。
    値は、すべてのゾーンで同じである限り、オンまたはオフにできます。
    保護モード設定を設定するには、
    [ツール]メニューから[インターネットオプション...]を選択し、[セキュリティ]タブをクリックします。
    各ゾーンについて、「保護モードを有効にする」というラベルの付いたタブの下部にチェックボックスがあります。

  • さらに、IE 10以降では「拡張保護モード」を無効にする必要があります。
    このオプションは、[インターネットオプション]ダイアログの[詳細設定]タブにあります。

  • Windows 10の場合、表示設定で「テキスト、アプリ、その他のアイテムのサイズを変更する」を100%に設定する必要もあります。

  • IE 11の場合のみ、ドライバーが作成するInternet Explorerのインスタンスへの接続を維持できるように、ターゲットコンピューターにレジストリを設定する必要があります。

    32ビットWindowsインストールの場合、レジストリエディターで調べる必要があるキーは
    HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHEです。

    64ビットWindowsインストールの場合、キーはHKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHEです。

    FEATURE_BFCACHEサブキーは存在する場合と存在しない場合があり、存在しない場合は作成する必要があることに注意してください。
    重要:このキー内で、iexplore.exeという名前のDWORD値を値0で作成します。

 

レジストリキーの設定については、下記を参考にしてください。

Windows 10のレジストリ設定の基本 | Think IT(シンクイット)

 

VBAコードを記述する

Excelを起動し、新しいブックを新規作成します。
マクロが使用できるように、「名前を付けて保存」から、「Excel マクロ有効ブック(*.xlsm)」形式で一度ファイルを保存します。

 

下記は、コードのサンプルです。「Alt」+「F11」で再度VBAエディタを開き、下記のコードを貼り付けます。

※コードの37行目、「スクショを保存するフォルダの場所」は任意で指定してください。
「例:D:\images\」 のように、最後に「\」をつけてください。

 

コードの貼り付け場所がわからない、という方は、こちらを参考になさってください。

Office TANAKA - 今さら聞けないVBA[マクロってどこに書けばいいの?]

 

Excelの編集

スクショを撮りたいWebページのURLを記述する

Excelに戻ります。作成したxlsm形式のExcelファイルの「Sheet1」に、
A1セルから下にスクリーンショットを撮りたいWebページのアドレスを入力します。

excel vba seleniumbasic

 

プログラムの実行ボタンを設置

VBAに記述したコード(マクロ)を実行するボタンを設置しましょう。以下はその手順です。

  1. Excelメニューから [挿入 > テキストボックス] を選び、テキストボックスを作成したら、中に適当なボタン名を記述します。
  2. つづいてテキストボックスを右クリックし、表示されたメニューから [マクロの登録(N)…] を選択します。
  3. 表示されたマクロの一覧から、実行させるマクロ名(SelenuimScsho)を選択し、 [OK] をクリックします。

これで、実行ボタンが設置できました。

excel vba seleniumbasic

 

プログラムの実行

さきほど作成したプログラムの実行ボタンを押してVBAを実行すると、IEブラウザが起動し、Excelのシートに並べたURLを順次表示して、スクリーンショットをシートに貼り付けていきます。

URLを最後まで巡回し、すべての作業が完了すると、ブラウザを閉じてプログラムを終了します。

 

 

実行結果とまとめ

以上です。実行結果はこちらです。

excel vba seleniumbasic

 

excel vba seleniumbasic

 

IEの設定など、最初は少し手間なところはありますが、ほかにもGoogleなどの検索ページから指定したキーワードの検索結果を取得したり、事務作業にもいろいろ応用できることがあると思います。

ぜひチャレンジしてみてください!ここまで読んでいただき、ありがとうございました。
ではまた♪再見(チャイツェン)!