PR
私が使っているPCガジェット類
作業環境で実際に使っている・気になっている周辺機器などをまとめました
※ 一部のリンクは広告(アフィリエイト)を含みます
作業環境で実際に使っている・気になっている周辺機器などをまとめました
※ 一部のリンクは広告(アフィリエイト)を含みます
「Webサイトから定期的に情報を取得したい」「Web上のフォームに毎回同じ内容を入力するのが面倒だ」——そんな定型作業を自動化できたら、と思ったことはありませんか?
Excel VBAと「SeleniumBasic」を組み合わせることで、こうしたWebブラウザ上の操作を自動化できます
この記事では、SeleniumBasicの導入から、実際にVBAでブラウザを操作する最初のステップまで解説します
ひとつ頭に入れておいてほしいのが、SeleniumBasicは2016年を最後に更新が止まっている枯れたツールという点です、最新のChromeで動かすにはドライバーを手動で差し替える前提になり、無保証・自己責任で使うことになります
同じVBA×Seleniumで後継の「SeleniumVBA」という選択肢もあります、ドライバーの自動更新や.NET Framework不要といった点で便利な一方で、SeleniumBasicはPythonなど他言語でSeleniumを使い慣れている人にはAPIの書き方が近くて馴染みやすいという強みもあります
どちらが向いているかは状況次第なので、記事の最後に使い分けガイドをまとめました、まずはSeleniumBasicのインストールから動かすところまで順に見ていきます
Seleniumは、Webブラウザの操作を自動化するためのフレームワーク、もともとはUIテスト用に開発されましたが、RPAやスクレイピングにも活用できます
そしてSeleniumBasicは、そのSeleniumをVBAのクラスから利用できるようにするためのモジュールです
オープンソースなので無料で利用でき、学習コストこそかかるものの、よくあるRPAツールのようなイニシャル/ランニングコストはかかりません
ひとつ知っておいてほしいのが、SeleniumBasic本体は2016年3月のバージョンが最後で、それ以降は更新が止まっているという点です
古くからの定番ではありますが、後継のSeleniumVBAという選択肢もあります、深刻な脆弱性の報告が表立っているわけではないものの、無保証・自己責任で使う前提で、同梱されているドライバーは古いので各自で最新版を用意するのが基本になります
インストーラーを実行するだけの簡単な操作ですが、ふだんあまり使わないGithubからのダウンロードなので、キャプチャ付きで手順を追っていきます
まずはGithubからSeleniumBasicのインストーラーをダウンロードします
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
最終更新が2016年3月と古いですが、配布自体は2026年の今も問題なくできます、長く広く使われてきたツールなので、まずはこのバージョンをダウンロードしてください
SeleniumBasicに限らずどのアプリにも言えることですが、”管理者としてインストール“(右クリックして”管理者として実行”を選択)するか、”ユーザーとしてインストール“(普通にダブルクリック)するかで、インストール先フォルダが変わります
利用するうえではどちらでも特に影響はなく、セキュリティ的にはなるべく権限を絞る方がいいので、迷っている場合はユーザーとして実行する方がベターです

改めてここからインストール手順を順に進めていきます
インストールした直後の状態でSeleniumを利用すると、VBAから怒られます

chromedriverには、ふだん使っているChromeのバージョンに合わせたドライバーが必要という特徴があります、SeleniumBasicに同梱されているドライバーは2016年当時のもので古すぎるため、まずバージョンが合わずに動きません
というわけで、最新のChromeで動かすにはchromedriverの差し替えが前提になります、ここからその手順を紹介していきます
※プログラムで自動更新もできるので、気になる方は最下部へ※
まず今使っているChromeのバージョンの調べ方は、「Chrome右上の︙ → ヘルプ → Google Chromeについて」の設定画面を開くと見られます、アドレスバーにchrome://settings/helpと入れても同じ画面に飛べます


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

※Chromeは起動時に自動更新されていくのに対し、chromedriverは前述のとおり自動更新されないため、放っておくとバージョン不一致が発生することがあります
更新と言っても、実際は対象バージョンの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年時点)、まずはバージョンを合わせるところから試してみてください
Chrome 115より前のバージョンでは、下の旧管理ページからドライバーを配布していました
https://sites.google.com/chromium.org/driver/downloads
今はChrome 115以降が当たり前なので、基本はChrome for Testingを使えば大丈夫です、古いChromeのドライバーを探すときの参考までに残しておきます
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のバージョンで手順が分かれます
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の機能の有効化」が主役になるので、まずはそちらを試すのがおすすめです
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向けの古いドライバーは気にしなくて大丈夫です
どちらも「VBAからSeleniumを使う」ための仕組みですが、向いている場面が違います
SeleniumBasicが向いている場面
driver.Get "URL"などAPIの書き方が近い)SeleniumVBAが向いている場面
SeleniumVBAに興味がある方はSeleniumVBAの使い方もあわせてどうぞ
VBAの場合は、ここまでやって利用準備が完了です
ここまで読んでいただいて分かるとおり、chromedriverの差し替えは更新の頻度が高くてけっこう面倒なので、プログラムでチェックした方が吉です
私が自作したプログラムを公開しているので、気になる方はこちらへどうぞ

chromedriverの手作業が面倒に感じた方は、上の使い分けガイドも参考にSeleniumVBAへの乗り換えも選択肢のひとつです
PythonとExcelを中心に仕事に役立つ業務ツールや自動化、スクレイピングツールの作成を受注していて、クラウドワークスでは気が付けば100件以上のお仕事を受注してきました!
会社員をやりながらの副業なので時間の捻出は相応ですが、クライアントの方々と近い立場でこちらからも提案しながら活動していますのでお悩みあれば是非ご相談ください
VBAとPythonを中心にユーザー側でできるITを自己学習しているので備忘録半分、学習履歴を残して同じ道を辿る人の参考になればとブログを始めました
副業でスクレイピングツール作成を中心にできることを色々やっていますのでご相談いただけるとありがたいです!
クラウドワークスのページへ
ココナラのページへ
コメント