【VBA】VBAでWebを自動化!SeleniumBasicインストールから使い方まで解説

Webサイトから定期的に情報を取得したい」「Web上のフォームに毎回同じ内容を入力するのが面倒だ」——そんな定型作業を自動化できたら、と思ったことはありませんか?

Excel VBAと「SeleniumBasic」を組み合わせることで、こうしたWebブラウザ上の操作を驚自動化できます。

この記事では、SeleniumBasicの導入から、実際にVBAでブラウザを操作する最初のステップまで解説します。

なお、VBAでブラウザを操作するなら、ドライバーの更新まで自動でやってくれて .NET も不要な「SeleniumVBA」という新しい選択肢もあります、これから始める方はSeleniumVBAの使い方もあわせて見てみてください

目次

まずSeleniumとは

Seleniumは、Webブラウザの操作を自動化するためのフレームワーク。もともとはUIテスト用に開発されましたが、RPAやスクレイピングにも活用可能です。

  • 対応言語:Python、Java、Ruby、VBAなど
  • 対応ブラウザ:Chrome、Edge、Firefox

そしてSeleniumBasicは、そのSeleniumをVBAのクラスで利用できるようにするためのモジュールです

オープンソースなので無料で利用でき、学習コストこそかかるもののよくあるRPAツールのようなイニシャル/ランニングコストはかかりません

SeleniumBasicのインストール手順

インストーラーを実行するだけの簡単な操作ですが、ユーザーではあまり利用しないGithubからのダウンロードなのでキャプチャ付きで手順を

インストーラーのダウンロード

GithubからSeleniumBasicのインストーラーをダウンロード

https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0

最終更新が2016年3月と古いですが、特に脆弱性があるわけでもなく今も広く利用され続けていますので特に気にせずダウンロードしてください

インストーラーの実行

SeleniumBasicに限らずどのアプリにも言えることですが、”管理者としてインストール“(右クリックして”管理者として実行”を選択)するか、”ユーザーとしてインストール“(普通にダブルクリック)するかでインストール先フォルダが変わります

利用する上ではどちらでも特に影響はなく、セキュリティ的にはなるべく権限を絞るの方がいいので迷ってる場合はユーザーとして実行した方がベター

右クリックから「管理者として実行」

インストール手順

改めてここからインストール手順

最初の画面は無心で「Next」をクリック

ライセンス契約が気になる人は一読しつつ、「I accept the agreement」を選択して「Next」をクリック

インストール対象の選択画面

今は利用できないInternet ExplorerやPhantom JSのドライバーもありますが、インストールしただけで何か影響が出るわけでもないのでよくわからない人は初期値の”Full installation”でもいいし、無駄なものはインストールしたくない人は↓を選択しておけばOK

最終確認画面

ココにインストール先のフォルダが表示されているのでチェック

  • 管理者の場合・・・C:\Program Files\SeleniumBasic
  • ユーザの場合・・・C:\Users\<ユーザー名>\AppData\Local\SeleniumBasic

無事完了

chromedriverの更新

インストールした直後のchromedriverのままSeleniumを利用するとVBAから怒られます

chromedriverの特徴として日頃使ってるchromeのバージョンに合わせたドライバーが必要で、初期のドライバーが古すぎてバージョンが合わないよってこと

というわけでchromedriverの更新が必要なので手順を紹介

※※プログラムで自動更新もできますので気になる方は最下部へ※※

chromeのバージョン確認

まず今使っているchromeのバージョンの調べ方は「Chrome右上の︙ → ヘルプ → Google Chromeについて」設定画面を開くと見れます

chromedriverのバージョン確認

続いてchromedriverのバージョンの調べ方はインストールフォルダにある「chromedriver.exe」を実行するとコンソール画面が立ち上がってバージョンが表示されます

※インストール時以外にもchromeが起動時に自動更新されるのに比べてchromedriverは前述の通り自動更新されないためバージョン不一致が発生することがあります

chromedriverの更新方法

更新と言っても実際は違う対象バージョンのchromedriverアプリと入れ替えを行います

↓↓から今使っているchromeのバージョンに合わせたドライバーをダウンロードします

もしCurrent Releasesの中になかったら下部にも古いバージョンがあるのでそこからダウンロード

https://googlechromelabs.github.io/chrome-for-testing/#stable

chromedriverでOSに合わせてURLを直接叩いてダウンロードを

ダウンロードしたzipを解凍すると「chromedriver.exe」が取得できるのでSeleniumBasicをインストールしたフォルダにあるドライバーを上書き更新

https://sites.google.com/chromium.org/driver/downloads

使っているPC環境に合わせてドライバーをダウンロード
Windowsは32bitも64bitもwin32でOK

.NET Framework 3.5をインストール

.NET Framework 3.5がないとインスタンスを作ろうとしたときにオートメーションエラーが発生する場合があるので対応を

正攻法でMicrosoftのWEBサイトからダウンロードしてインストールする場合はコチラから

https://www.microsoft.com/ja-jp/download/details.aspx?id=21

他に簡単な方法としてSeleniumBasicフォルダ内のScriptsフォルダにある「StartChrome.vbs」を実行してあげればエラーメッセージとともに.NET Framework 3.5のインストール画面が出てくるのでそのままインストールしてあげるだけ

既に.NET Framework 3.5がインストールされている場合は空のchromeが立ち上がってメッセージが出てきます

ちなみにStartChrome.vbsの中身はこれだけ

Set driver = CreateObject(“Selenium.ChromeDriver”)」で発生するエラーに反応して.NET Framework 3.5のインストールを促してくれるんだろうから「流石MS!」と思いつつ、「だったらVBAでもそうしてくれよ・・・」と不満を吐いてみる

Set driver = CreateObject("Selenium.ChromeDriver")
driver.Start
WScript.Echo "Click OK to quit"
driver.Quit

msedgedriverの更新

chromeだけじゃなくedgeでも同じ話でして、当然ながらドライバーのインストールサイトが違うのでedgeの場合はこちら

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver

各チャネルの最新版はページ中央に、過去版含めたバージョン別のドライバーその下にあります

あとがき

VBAの場合はここまでやって利用準備完了

ちなみにchromedriverの更新は結構頻度が高くて面倒なのでプログラムでチェックした方が吉

私自作のプログラム公開しているので気になる方はこちらへどうぞ!

あわせて読みたい
【VBA】SeleniumBasicのchromedriverを自動更新する PythonのSeleniumはchromedriverをchromeに合わせて自動更新する方法が確立していますが、VBA用のSeleniumBasicにはそんな機能備わっていないので独自に作ってみました ...

最後に・・・

クラウドワークスココナラでお仕事受け付けています!

PythonとExcelを中心に仕事に役立つ業務ツールや自動化、スクレイピングツールの作成を受注していて、クラウドワークスでは気が付けば100件以上のお仕事を受注してきました!

会社員をやりながらの副業なので時間の捻出は相応ですが、クライアントの方々と近い立場でこちらからも提案しながら活動していますのでお悩みあれば是非ご相談ください

ココナラのプロフィールページへ

"ココナラ"に新規登録する際は1,000Pもらえる紹介コード使ってください

78E62K

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

VBAとPythonを中心にユーザー側でできるITを自己学習しているので備忘録半分、学習履歴を残して同じ道を辿る人の参考になればとブログを始めました

副業でスクレイピングツール作成を中心にできることを色々やっていますのでご相談いただけるとありがたいです!


クラウドワークスのページへ


ココナラのページへ

コメント

コメントする

目次