はじめに
アップロード制限に伴い、一部カット編集を行っていることをご了承ください。
画面に映っているのは、AIでも何でもない、ただの 「古き良き Excel VBA」 です。
そしてVBAが操作しているのは、新しく立ち上げた自動化用ブラウザではなく、「今、目の前で普通に開いている Edge(既存セッション)」 です。
世間では「AIエージェント向けの最新プロトコル」と持て囃されている Chrome DevTools MCP。
しかし、そのプロトコルの蓋を開けてみたら、自動化エンジニアが喉から手が出るほど欲しかった「あの機能」の復活祭でした。
「既存ブラウザの操作」はなぜ封印されていたのか?
従来のブラウザ自動化(SeleniumやPuppeteer、CDP直叩きなど)で、多くの人が抱えていた不満があります。
それは、「普段使いしている、今目の前にあるブラウザにアタッチして操作することができない」 という問題です。
約1年前にChromeチームが下したセキュリティ仕様変更により、自動制御を行うには専用のコマンドライン引数 --remote-debugging-port に加え、必ず --user-data-dir(別のプロファイル環境)を指定しなければならないという厳しい制限が課されました。
(※Cookie盗難などの悪意ある攻撃を防ぐための正当な理由でした)
「既存ブラウザの操作」自体は以前からあったっちゃあった
唯一、PowerAutomate は、「既存ブラウザの操作」ができるツールではありますが当然、SeleniumやPuppeteer等といった高度なことはできなかったため、「う~~ん🫠🫠」という気持ちでした。
救世主「MCP」の登場(中身はただのCDPだった)
そんな絶望から約9ヶ月。Chrome DevTools MCP の発表というニュースが飛び込んできました。
公式記事はあくまで「ClaudeなどのAIエージェントが、ブラウザと対話するためのMCPプロトコル」として紹介しています。
しかし、その通信仕様を紐解いてみると……
「これ、ただの remote-debugging-port とほぼ同じ仕組みじゃん!」
AI向けに用意されたこの新しい「裏口」を使えば、セキュリティを担保したまま、再び既存セッションにアタッチできることに気がついてしまったのです。
実装手順:VBAからMCP経由でブラウザをジャックする
実際にVBAから既存のEdgeを操作した手順は以下の通りです。
簡略化のため、Edgeでの手順としますが、Chrome も同じ感覚だと思います。
-
設定の有効化
対象のブラウザでedge://inspect/#remote-debugging(Chromeの場合はchrome://...)を開き、デバッグ機能を有効化します。

-
ポートの特定
%USERPROFILE%\AppData\Local\Microsoft\Edge\User Data\DevToolsActivePort にアクセスして、ポートとURLパスを特定します。
上がポート、下がパスです。

-
WebSocketで直結
特定したポートに対し、VBAから直接 WebSocket 通信を確立します。 -
ユーザーの承認(セキュリティ担保)
接続時、ブラウザ側に「デバッグ接続を許可しますか?」というダイアログが表示されます。ここで人間が「許可する」を選択します。

これによりCookie盗難などのセキュリティリスクがクリアされています
5 . VBAから自在にコントロール!
あとはおなじみのCDPコマンドのJSONを流し込むだけ。動画の通り、VBAから既存ブラウザのページ遷移等が自由自在に行えます!
おわりに:プロトコルを知れば、VBAは無敵になる
最新の「AIエージェント向け」とパッケージングされた技術であっても、通信の根本である「プロトコル(仕組み)」さえ理解してしまえば、20年以上前の言語であるVBAからでも完全にしゃぶり尽くすことができます。
「IE(Internet Explorer)時代の、あの手軽な CreateObject による既存ブラウザ操作」
二度と戻らないと思われていたあの最高に便利な開発体験が、まさかAI向けの最新規格(MCP)を駆使することで、現代のEdge/Chromeで蘇るとは思いませんでした。
「仕組みさえ分かれば、言語の壁は関係ない。」
そんなエンジニアリングのロマンを、ぜひ皆さんも体験してみてください!🤠

