「Webサイトから定期的に情報を取得したい」「Web上のフォームに毎回同じ内容を入力するのが面倒だ」——そんな定型作業を自動化できたら、と思ったことはありませんか?
Excel VBAと「SeleniumBasic」を組み合わせることで、こうしたWebブラウザ上の操作を自動化できます
この記事では、SeleniumBasicの導入から、実際にVBAでブラウザを操作する最初のステップまで解説します
ひとつ頭に入れておいてほしいのが、SeleniumBasicは2016年を最後に更新が止まっている枯れたツールという点です、最新のChromeで動かすにはドライバーを手動で差し替える前提になり、無保証・自己責任で使うことになります
同じVBA×Seleniumで後継の「SeleniumVBA」という選択肢もあります、ドライバーの自動更新や.NET Framework不要といった点で便利な一方で、SeleniumBasicはPythonなど他言語でSeleniumを使い慣れている人にはAPIの書き方が近くて馴染みやすい という強みもあります
どちらが向いているかは状況次第なので、記事の最後に使い分けガイドをまとめました、まずはSeleniumBasicのインストールから動かすところまで順に見ていきます
目次
まずSeleniumとSeleniumBasicとは
Seleniumは、Webブラウザの操作を自動化するためのフレームワーク、もともとはUIテスト用に開発されましたが、RPAやスクレイピングにも活用できます
対応言語:Python、Java、Ruby、VBAなど
対応ブラウザ:Chrome、Edge、Firefox
そしてSeleniumBasicは、そのSeleniumをVBAのクラスから利用できるようにするためのモジュールです
オープンソースなので無料で利用でき、学習コストこそかかるものの、よくあるRPAツールのようなイニシャル/ランニングコストはかかりません
ひとつ知っておいてほしいのが、SeleniumBasic本体は2016年3月のバージョンが最後で、それ以降は更新が止まっている という点です
古くからの定番ではありますが、後継のSeleniumVBAという選択肢もあります、深刻な脆弱性の報告が表立っているわけではないものの、無保証・自己責任で使う前提で、同梱されているドライバーは古いので各自で最新版を用意するのが基本になります
SeleniumBasicのインストール手順
インストーラーを実行するだけの簡単な操作ですが、ふだんあまり使わないGithubからのダウンロードなので、キャプチャ付きで手順を追っていきます
インストーラーのダウンロード
まずはGithubからSeleniumBasicのインストーラーをダウンロードします
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
最終更新が2016年3月と古いですが、配布自体は2026年の今も問題なくできます、長く広く使われてきたツールなので、まずはこのバージョンをダウンロードしてください
インストーラーの実行
SeleniumBasicに限らずどのアプリにも言えることですが、”管理者としてインストール “(右クリックして”管理者として実行”を選択)するか、”ユーザーとしてインストール “(普通にダブルクリック)するかで、インストール先フォルダが変わります
利用するうえではどちらでも特に影響はなく、セキュリティ的にはなるべく権限を絞る方がいいので、迷っている場合はユーザーとして実行する方がベター です
右クリックから「管理者として実行」
改めてここからインストール手順を順に進めていきます
STEP
最初の画面でNext
最初の画面は無心で「Next」をクリックします
STEP
ライセンスに同意
ライセンス契約が気になる人は一読しつつ、「I accept the agreement」を選択して「Next」をクリックします
STEP
インストール対象を選択
インストール対象の選択画面です
今は使えないInternet ExplorerやPhantomJSのドライバーもありますが、インストールしただけで何か影響が出るわけでもないので、よくわからない人は初期値の”Full installation”でもいいし、無駄なものはインストールしたくない人は下のように選んでおけばOKです
STEP
インストール先を確認
最終確認画面です、ここにインストール先のフォルダが表示されているのでチェックしておきます
管理者の場合・・・C:\Program Files\SeleniumBasic
ユーザの場合・・・C:\Users\<ユーザー名>\AppData\Local\SeleniumBasic
STEP
インストール完了
これで無事完了です
chromedriverを最新版に差し替える
インストールした直後の状態でSeleniumを利用すると、VBAから怒られます
chromedriverには、ふだん使っているChromeのバージョンに合わせたドライバーが必要という特徴があります、SeleniumBasicに同梱されているドライバーは2016年当時のもので古すぎる ため、まずバージョンが合わずに動きません
というわけで、最新のChromeで動かすにはchromedriverの差し替えが前提 になります、ここからその手順を紹介していきます
※プログラムで自動更新もできるので、気になる方は最下部 へ※
Chromeのバージョン確認
まず今使っているChromeのバージョンの調べ方は、「Chrome右上の︙ → ヘルプ → Google Chromeについて」の設定画面を開くと見られます、アドレスバーにchrome://settings/help と入れても同じ画面に飛べます
chromedriverのバージョン確認
続いてchromedriverのバージョンの調べ方は、インストールフォルダにある「chromedriver.exe 」を実行すると、コンソール画面が立ち上がってバージョンが表示されます
※Chromeは起動時に自動更新されていくのに対し、chromedriverは前述のとおり自動更新されないため、放っておくとバージョン不一致が発生することがあります
Chrome for Testingから差し替え
更新と言っても、実際は対象バージョンのchromedriverと入れ替えを行うだけです
下のページから、今使っているChromeのバージョンに合わせたドライバーをダウンロードします、Stableの中になければ下部にBeta/Dev/Canaryのチャンネルもあるので、そこから合うものを探してください
https://googlechromelabs.github.io/chrome-for-testing/#stable
chromedriverの行から、OSに合わせてURLを直接叩いてダウンロードします、64bitのWindowsならwin64 を選べます(win32でも動作します)
ダウンロードしたzipを解凍すると「chromedriver.exe」が取り出せるので、SeleniumBasicをインストールしたフォルダにある古いドライバーを、これで上書き更新します
うまく起動しないときは、たいていバージョン不一致が原因です
session not created やThis version of ChromeDriver only supports Chrome version XXX といったエラーが出たら、Chromeのバージョンを確認して、それに一致するchromedriverをChrome for Testingから入手し、差し替えてあげればOKです
なお構成によっては、実行ファイルの指定やユーザーデータフォルダの指定といった追加設定が必要になる場合もあります(2026年時点)、まずはバージョンを合わせるところから試してみてください
.NET Framework 3.5 を用意する
VBAからCreateObject(“Selenium.ChromeDriver”) でインスタンスを作ろうとしたときに、.NET Framework 3.5がないとオートメーションエラーが発生する場合があるので、その対応をしておきます、これは2026年の今でも変わらず必要です
Windows 11での正攻法は、「Windowsの機能の有効化または無効化」を開いて.NET Framework 3.5(.NET 2.0 および 3.0 を含む) にチェックを入れる方法です、スタートメニューで「Windowsの機能」と検索すると設定画面が開けます
.NET Framework 3.5の入れ方は、お使いのWindows 11のバージョンで手順が分かれます
25H2以前 ・・・「Windowsの機能の有効化または無効化」やDISMコマンド(NetFx3)で入れられます
26H1(build 28000)以降 ・・・専用のスタンドアロンインストーラーのみで、「機能の有効化」やDISMでは入れられません
26H1以降のWindows 11を使っている場合は、Microsoftが配布している.NET Framework 3.5のスタンドアロンインストーラーを使う形になります
もう少し手早く済ませたい場合は、SeleniumBasicフォルダ内のScriptsフォルダ にある「StartChrome.vbs 」を実行する方法もあります、.NET Framework 3.5が入っていなければ、エラーメッセージとともにインストール画面が出てくるので、そのまま導入できます
すでに.NET Framework 3.5がインストールされている場合は、空のChromeが立ち上がってメッセージが出てきます
このStartChrome.vbsから.NETを呼び出す方式(オンデマンドのインストール)は、26H1以降のWindows 11では使えない ので、その場合は前述のスタンドアロンインストーラーで入れてください
ちなみに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
なお、Microsoftの正規ページから.NET Framework 3.5を入手する経路もありますが、Windows 11では上記の「Windowsの機能の有効化」が主役になるので、まずはそちらを試すのがおすすめです
Edge(msedgedriver)を使う場合
ChromeだけでなくEdgeでも同じ話で、当然ながらドライバーの配布サイトが違うので、Edgeの場合はこちらから入手します
https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver
各チャネルの最新版はページ上部から中央に、過去版を含めたバージョン別のドライバーはその下の「Recent versions」から「Go to full directory」とたどると見つかります
Edgeで気をつけたいのが、Edge本体とmsedgedriverは、バージョン番号の先頭3つを一致させる必要がある という点です
Edgeは自動更新で頻繁にバージョンが上がっていくので、ここがいちばんつまずきやすいところです、SeleniumBasic同梱のドライバーも古いので、Chromeのときと同じようにEdge用のドライバーも最新版へ差し替えてあげてください
現行はChromium版Edgeが前提なので、レガシーEdge向けの古いドライバーは気にしなくて大丈夫です
SeleniumBasicとSeleniumVBAの使い分け
どちらも「VBAからSeleniumを使う」ための仕組みですが、向いている場面が違います
SeleniumBasicが向いている場面
既存のSeleniumBasicコードを保守・引き継ぐ場合
Pythonなど他言語でSeleniumを使い慣れている場合(driver.Get "URL"などAPIの書き方が近い)
ネット上の解説記事や書籍が豊富な方がいい場合
SeleniumVBAが向いている場面
ゼロから新規で始める場合
chromedriverの手動更新を省きたい場合(自動更新対応)
長期でメンテしていくプロジェクトで、継続開発中のツールを使いたい場合
SeleniumVBAに興味がある方はSeleniumVBAの使い方 もあわせてどうぞ
ORDER
このブラウザ操作、代わりに自動化します
記事どおりに動かない・作る時間がないときは、代わりに作ります 会社員の副業なので、対応は平日夜と土日です
ココナラ 12,000円〜
会社からのご依頼も、契約と支払いはココナラ・クラウドワークスを通します(個人で受けています)
はじめての方へ:ココナラで頼む流れ / クラウドワークスで頼む流れ
スクレイピングは先に依頼の考え方 を読んでもらうと話が早いです
あとがき
VBAの場合は、ここまでやって利用準備が完了です
ここまで読んでいただいて分かるとおり、chromedriverの差し替えは更新の頻度が高くてけっこう面倒なので、プログラムでチェックした方が吉です
私が自作したプログラムを公開しているので、気になる方はこちらへどうぞ
あわせて読みたい
【VBA】SeleniumBasicのchromedriverを自動更新する
PythonのSeleniumはchromedriverをchromeに合わせて自動更新する方法が確立していますが、VBA用のSeleniumBasicにはそんな機能備わっていないので独自に作ってみました ...
chromedriverの手作業が面倒に感じた方は、上の使い分けガイドも参考にSeleniumVBAへの乗り換え も選択肢のひとつです
📚 私のおすすめ本 PR
ジャンルごとに私のおすすめからランダムで5冊を表示しています
コメント