- VBAでスクレイピングやってみたいけどどうやればいい?
- 準備に時間がかかって面倒そう
- VBAスクレイピングに関する情報が少なくてよくわからない
スクレイピングを始めようとした初心者がソフトのインストールの段階で手間取って挫折してしまうケースは多いです。
私は現在Web上で日々確認する業務を公私含めて30個以上自動化しています。しかし最初はYahoo画面の表示をさせることさえも苦労しました。
そこでこの記事では初心者でもすぐにスクレイピングの環境を整えるための方法についてわかりやすく説明します。
なおインストールするソフトは3つありますが戸惑わないよう図を多く入れています。
これができれば自動でサイトの立ち上げができるようになりますので是非習得していってください。
なおMicrosoft Edgeを使用されたい方はこちらをご確認ください。
結論
必要なステップは以下4つ(ソフトのインストールが3つ コードが1つ)です。
- Seleniumをインストールする
- Chromeドライバーをインストールする
- NET.FrameWorkをインストールする
- Excel VBAでコードを入力する
次から詳しく説明します。
Seleniumをインストールする
GitHubのSeleniumBasicダウンロードページにて.exeファイルをクリックします
ダウンロードしたファイルをクリックすると、セットアップ画面が表示されます。
「Next>」をクリックします。
ライセンスの同意画面が表示させるので「I agree~」にチェックを入れ「Next>」をクリックします。
どのコンポーネントを入れるか聞かれるのでそのままで「Next」をクリックします。
インストールされる場所がでますのでメモしたうえで「Next」をクリックします。
なおメモを忘れた場合でもインストールされる場所は C:\Users\(ユーザー名)\AppData\Local\SeleniumBasicになりますのでこれを覚えておいてもらったら結構です。
セットアップ完了の画面になりますので「Finish」をクリックします。
これでSeleniumのインストールは完了です。
Chrome Driverをインストールする
まずGoogle Chromeのバージョンを確認します。
Google Chromを立ち上げ右上の3点リーダー→「ヘルプ」→「Google Chromeについて」をクリックします。
Google Chromeのバージョンをメモしておきます
ここで最初の3桁の数字を確認します。
1. 114以下 次へ
2. 115以降 次へ
1. 114以下の場合
ChromeDriver – WebDriver for Chromeのサイト
(https://sites.google.com/a/chromium.org/chromedriver/downloads)にアクセスし、該当のVerをクリックします。
(最後のXXXについては異なっていても大丈夫です。存在しない場合はVersion Selectionをクリックして該当のバージョンを検索してください)
該当のOS用のdriverを選択します(ここではWindowsとしています)
ファイルを解凍し、Chromedriver.exeを取り出します
さきほどのSleniumBasicのインストールフォルダ(C:\Users\(ユーザー名)\AppData\Local\SeleniumBasic)にあるChromedriver.exeを上書きをします。
これで最新版のChromeDriverのインストールが完了しました。
2.115以降の場合
Chrome for Testing availabilityのサイト
(https://googlechromelabs.github.io/chrome-for-testing/)にアクセスし、該当のバージョンのChannelをクリックします(以下では120としています。最後のXXXについては異なっていても大丈夫です。)。
該当のChromeDriverのURLをコピーし、アクセスしてzip版をダウンロードします。
ファイルを解凍し、Chromedriver.exeを取り出します。
さきほどのSleniumBasicのインストールフォルダ(C:\Users\(ユーザー名)\AppData\Local\SeleniumBasic)にあるChromedriver.exeを上書きをします。
これで最新版のChromeDriverのインストールが完了しました。
NET.FrameWorkをインストールする
次にSeleniumを動かすのに必要なNET.FrameWorkの目的のバージョンをインストールします。
NET.FrameWorkとはWindows でさまざまなアプリケーションを実行するために必要なものでSeleniumを動かす際にも必要になります。(NET.FrameWorkについてはこちら)
新しいPCの場合NET.FrameWorkのバージョンが高いのでSeleniumに付属したものを再インストールします。
SeleniumのNET.FrameWorkは以下に入っています。
C:\Users\[ユーザー名]\AppData\Local\SeleniumBasic\Scripts 内のStartChrome.vbs
StartChrome.vbs を実行すると、必要なバージョンの .NET Framework のインストーラが起動します。
なお終わったら一度Windowsを再起動してください。行うことで正常にインストールされます。
Excel VBAでコードを入力する
ここまで準備すればやっとVBAを立ち上げることができます。
VBEを立ち上げたらまず参照設定をします。
[ツール]→[参照設定]→[Selenium Type Library]にチェック
次にGoogleを立ち上げるコードを書いてみます。
Sub Google()
'Chromeを立ち上げてGoogleを立ち上げる
Dim Driver As New Selenium.WebDriver
Driver.Start "Chrome"
Driver.Get "https://www.google.com/?hl=ja"
Stop
End Sub
コードの詳細については次回以降で説明しますがEnd~Subの手前にStopを入れています。
VBAで立ち上げたChromeはSub~End Subの処理が終了すると自動的に消える(解放される)為End Subの手前にStopをいれて一時停止させています。
なおこのコードを実行した後のVBEとChrome画面は以下になります。
立ち上がったChromeは最前面に来ていないと思いますのでChromeをクリックして確認してください。
[Chromeは自動テストソフトウェアによって制御されています]が出ていれば目的は達成です。
ここでのまとめ
今回はVBAでスクレイピングを行うために必要なSeleniumのインストール方法について説明しました。
インストールは少し大変でしたが、コード自体は最初のSelenium立ち上げのコードさえ覚えてしまえばあとは少しのメソッドの利用で誰でも簡単に操作できます。
コードについては次回以降で詳しく説明していきます。
↓困ったときは以下が頼りになります。私も利用させてもらってます😊。
SeleniumBasicでのWebスクレイピングに関するまとめ記事はこちらをどうぞ
Web-APIを用いたデータ取得に関する記事はこちらをどうぞ
【VBA】Web APIを使ってデータを取得する(OpenWeatherMap)1
【VBA】Web APIを使って時間別天気予報を取得する(気象庁API)
【VBA】Web APIを使ってLINE通知を行う(LINE Notify)1
【API-VBA】Web APIを使って翻訳をする(DeepL API)
VBAの資格に興味を持たれた方はこちらがお勧めです。筆者自身の一からの体験を記事にしており、初めての方目線で読んでいただけるようになっています。
コメント