VBAでWebスクレイピング難しい初期設定を分かりやすく解説

VBA&Seleniumbasicの環境設定を画面に沿って解説

Web情報を取得する方法の1つにWebスクレイピングがあります。

数年前まではWebスクレイピングの主要ブラウザはIEでした。

しかしMicrosoftさんはInternetExplorerのサポートを終了しました。

EdgeやChromeなどのブラウザを使った別の方法を検討する必要があります。

今後定番となるSeleniumbasicを使ったWeb情報を取得する方法について紹介、解説していきます。

アプリのダウンロードからコードの書き方まで一貫して情報提供します。

EnjoyExcel
EnjoyExcel

Webスクレイピングはやり方さえ分かればそんなに難しくないですよ。

この記事でわかる事

大きく分けると4つです。

この記事でわかる事
  1. Seleniumbasicについて説明
  2. 動画を用意
  3. 環境構築について解説
  4. 簡単なコードの書き方を紹介
挑戦してみましょう

Enjoy Excel

Seleniumbasicとは何かを間単に説明してから初期設定(環境構築)を行います。

初期設定(環境構築)は非常に手間がかかります。よって丁寧に解説していきます。

最後に出来るだけ間単にコードを書く為のヒントになる記事を用意しています。

この本で勉強しました

Webスクレイピングに興味があったのですがどうやって勉強したら良いのか分かりませんでした。

色々調べてく中でWebスクレイピングについて分かりやすく書いている本を見つけました。

Webスクレイピングについて書かれているのは約20ページほどですがかなり充実しています。

初期設定Web上の値を取得する為のメソッドがリスト化されている等非常に見易いです。

Seleniumbasicについて

簡単に言いますと「自動でWebから情報を取得するためのツール」です。

本来の目的は別にありますがここでは省略します。

処理がイメージ出来るような画像を用意してみました。

端的に申し上げますと「ExcelからSeleniumbasic経由でWebスクレイピング」をする事になります。

マクロのプロシージャからSeleniumbasic経由で各ブラウザのドライバーに指示を出します。

ドライバーがマクロからのリクエスト(コード)に対応した操作をブラウザに対して行います。

ドライバーがWeb環境との橋渡し役になり必要な情報を取り出してくるという仕組みです。

Seleniumが情報の橋渡しをしてくれます。

動画

私のブログ内の記事から情報をスクレイピングした動画を用意しました。

簡単ですがスクレイピングがどういったものか分かる様になっています。

BGM付です。再生時は気をつけてください。

スクレイピング中の動画です。

複数のURLから情報を取得できる

Webスクレイピングは1度で複数のURLにアクセスして情報を取る事が出来ます。

コードが書ける人であればWeb上にある情報の掴み方だけ覚えれば何でも出来る様になります。

慣れれば比較的簡単にスクレイピング可能です。これで便利さは認識いただけましたね。

難易度は高めです

予想通りかもしれませんがVBA初心者で知識がまだ定着してない方には難しいです。

しかし必要最低限の機能さえ押さえれば比較的簡単にWebの情報を取得出来るようなツールになっています。

無料で登録も不要、Seleniumbasic用の特殊な学習も不要というメリットも多いツールです。

しかしデメリットも何点かあります。

デメリットとして1番大きいのは「環境構築とメンテナンスの手間」が挙げられます。

環境構築はかなり大変

Seleniumbasicにおける環境構築はかなり手間がかかります。

コードを書くところまで進めずに断念してしまう人が多いです。

加えて1回設定したらOKというわけにはいきません。

一定のタイミングでメンテナンスが必要という非常に手間のかかる環境の中作業をする必要があります。

面倒だから避けよう」ではなく面倒だからこそしっかり解説」していきます。

以降の記事を読んでいただければ環境面の心配はありません。

環境構築

先にやらないといけない事を書き出してみます。

作業内容
  • 1
    Seleniumbasicのダウンロードとインストール

    アプリのDLとインストールについて順を追って説明

  • 2
    Chromeのダウンロードとインストールとバージョン確認

    ブラウザ(Chrome)のダウンロードとインストールを行います

    ブラウザのバージョンに対応したドライバーを用意します

  • 3
    Chromeドライバーをダウンロード

    ブラウザのバージョンと同じドライバーをDL

  • 4
    Chromeドライバーを上書保存

    Seleniumがデフォルトで持っているドライバーを上書き

  • 5
    VBEの参照設定で必要なライブラリを選択

    Selenium Type Library を選択

5番のVBEの参照設定は実行時バインディングにする事でマストでは無くなります。

基本は上記4点は必須だと思って下さい。

実行時バインディングが分からない人は作業内容の1から5まで準備してください。

続いて私のPC環境について情報展開しておきます。

私のPCの環境
  • 使用するブラウザ:Google Chrome
  • OS:Windows10

重要なのは自動で動かすことを想定しているブラウザの種類と自PCに搭載されているOSの種類です。

これをふまえて作業を紹介していきます。

Seleniumbasicのダウンロードとインストール

まずはSeleniumbasicのダウンロードです。以下URLにアクセスしましょう。

以下TOP画面です。


少し下の方を見ていくと太字のDownloadという文字が出てきます。その下のRelease pageをClick。

次の画面では中断よりやや下AssetsからSeleniumBasic-2.0.9.0.exeを選択。

これはダウンロード時のバージョンで最新のものを選択してください。

インストーラーをダウンロード出来る様になります。

作業し易い様にデスクトップにダウンロードしましょう。

インストーラーをClickすると以下のような画面が起動してきます。Nextを押下。

次のダイアログボックスではI accept ・・・ にチェックを入れます。その後Nextを押下。

WebDriver for Chrome にレ点を入れます。続いてIEのレ点を外しましょう。その後Nextを押下。

既にインストール済みだとこのようなダイアログボックスが立ち上がります。

通常は出ませんが一応お見せしました。スルーして次の画面に進みます。

最終的にこの画面でInstallを押下してインストール開始となります。

インストールが進むとプログレスバーが動いて作業の進捗を見る事ができます。

インストールが終了するとその旨を伝えるダイアログボックスが立ち上がります。

Finishボタンを押下してください。インストールはこれで終了です。

Chromeのダウンロードとインストールとバージョン確認

Chromeのダウンロード、インストール、バージョン確認について説明します。

Chromeのダウンロード

Chromeのダウンロード、インストールは難しくないので省略します。

Chromeのダウンロード先のリンクだけ用意しておきます。

必要に応じてダウンロードとインストールをお願い致します。

Chromeのバージョン確認

バージョンを確認する方法を紹介します。

Chromeを起動してアドレスバーに以下の様に入力してください。

chrome://version

一番上の値を確認。私は 105.0.・・・という数値です。先頭の3文字を控えましょう。

Chromeドライバーをダウンロード

以下URLにアクセスしましょう。

ずっと下に見ていく中で自分PCのChromeのバージョンと同じものをダウンロードします。

先頭の3文字が一致していれば大丈夫です。

今回私はCurrent Releases105.0.・・・をダウンロードしました。

次の画面ではOS毎にドライバーを選択します。

自分のPCはWindowsですので下から2番目のzipファイルをダウンロードします。Windowsは一択です。

Chromeドライバーを上書保存

先程Seleniumbasicをインストールしました。

その中にChromeのドライバーが居るのですが最新ではないです。

まずは最新のドライバーをインストールしましょう。

その後Seleniumbasicがデフォルトで持っているドライバーと入れ替えてください。

理由はSeleniumbasicに備えてあるドライバーがかなり古いものだからです。

インストールされたSeleniumの在り処(デフォルトの場合)

C:\Users\(ここは各ユーザー名)\AppData\Local\SeleniumBasic

記事を書いているのは2022年10月です。以下画像はSeleniumをインストールした際の周辺データです。

Chromeについては既に数ヵ月前にドライバーを入れ替えましたがEdgeのドライバーは2015年です。

この様にSeleniumbasicをインストールした際は古いドライバーが備付けられています。

インストール後は各自が使うブラウザに対して最新のドライバーを用意する必要があります。

具体的に何をやるかと言いますと単純に置き換えて(上書き)ください。

先程ダウンロードしたドライバーを上記フォルダにドラッグアンドドロップしてください。

すると「上書きしますか?」というような問い合わせが出るので上書きしてください。

VBEの参照設定で必要なライブラリを選択

やっとExcelの話になりましたね。お馴染みのVBEを開きます。

参照設定から Selenium Type Library を見つけてレ点を入れてからOKボタンを押下しましょう。

参照設定が何か?などは省略します。

多分スクレイピングをやる人はスキルとしてすでに参照設定の意味は分かっていると思います。

これでやっと環境構築が完了しました。

ブラウザは定期的にバージョンアップします

Chromeは不定期でバージョンアップします。

その時にSeleniumbasicに備えたドライバーもインストールする必要があります。

ドライバーが最新じゃない時はVBAでコードを実行した際にエラーで止まります。

ドライバーが古いな」と気付きます。

このサイトのリンクを持っておきましょう

メンテナンス時は再度先程の設定と同じようにドライバーをダウンロードしましょう。

Seleniumbasicが持っているドライバーを上書きしてください。

この様に定期的にメンテナンスが必要です。環境を最新に保つ必要があります。

加えて見ていただいた様に非常に手間がかかります。

この記事のリンクを持っていただくとブラウザのバージョンアップ時のドライバーインストールに困らないです

記事を用意した私自身も実際にこのURLに来て都度ドライバーをインストールしています。

ドライバーのバージョンアップに合わせて作業をするので不定期になります。

そんな時にツールの置き場所(この記事)が決まっているのでメンテナンスがかなり楽です。

簡単なコードの書き方を紹介

コードの書き方については別記事で紹介しています。

出来るだけ身近なケースを用意して簡単なコードでスクレイピングしていますのでご覧ください。

私はXPathの方がスクレイピングしやすいです。理由は記事を見ていただく事で分かります。

まとめ

私の印象では最初は環境構築7コード3という比率で環境構築の方が圧倒的に面倒で手間です。

ブラウザのバージョンアップでドライバーを再インストールするのが手間等イニシャルもランニングも大変です。

しかし覚えてしまえば・・・という感じでしょうか。今ではそんなに苦にならなくなりました。

慣れると環境構築2コード8ぐらの比率に変わってきます。

スクレイピングに慣れてくると色々なWeb画面と対峙する事になります。

複数のURLに対応する為にコードのアレンジが必要になります。

よってコードの事を考える比率が多くなり上記の様な比率に至ります。

できるだけ簡単に最短距離でWebスクレイピングを解説してきました。難しかった人も居るはずです。

分かりにくい時は分かっている人に聞きましょう。以下リンクをご覧ください。

EnjoyExcel

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