Ver 2.0.0 リリースのお知らせ - 内部ロジック大幅刷新
最初の開発から約半年。個人でコツコツと積み上げてきたこのプロジェクトが、ついに「Ver 2.0.0」という大きな節目を迎えることができました。
今回のアップデートに派手な新機能はありません。しかし、「心臓部(エンジン)」を完全に作り替えました。
これまでは「動くこと」を目標にしていましたが、Ver 2.0.0では 「複数の世界(タブ)を、いかに正確に、そして同時に支配するか」 という課題に対する、私なりの最終回答を実装しています。
🚀 アップデートの核心:RaiseEvent 方式への完全移行
これまでのVer 1.x系では、単体タブの処理には十分でしたが、 「複数タブでの非同期イベントを捌ききれない」 という物理的な壁に突き当たりました。
この壁を壊すために採用したのが、全てのレスポンスを RaiseEvent で一斉放送するというアーキテクチャです。
ブラウザからの生パケットを「イベントの連鎖」として各クラスへ伝播させることで、シングルスレッドの限界を超えた高度な交通整理を実現しました。
🏗️ クラス設計の再定義(責務の分離)
RaiseEvent のポテンシャルを最大限に引き出すため、各クラスの役割を「パズルのピース」のように明確に分けました。
<CDP制御系:旧帝国層の整理>
- CDPCore.cls 【強化】
Pipeの物理的な読み書きに加え、CDPレスポンスの解析を統合。システム全体の「心臓」としてイベントを発火させます。 - CDPBrowser.cls 【整理】
ブラウザ全体の管理(タブ生成など)に専念。個別の命令は新設クラスへ。 - CDPContext.cls 【新設】
従来の「タブ単位の命令」をすべて集約。「タブ」という物理概念を「コンテキスト(実行空間)」へと昇華させました。
<WebDriverBiDi系:次世代翻訳層>
- WebDriverBiDiCore.cls 【洗練】
JSマッパーの注入やBiDi/CDP変換など、裏方の「通訳業務」に特化。 - WebDriverBiDiMode.cls 【新設】
ユーザーが直接触れる「標準語」の司令塔。Coreから届く翻訳済みのイベントを統括します。
この刷新により、「CDPルート」と「BiDiルート」のロジック構造がほぼ対称になりました。これにより、メンテナンス性が向上し、何より「BiDiで場所を特定し、CDPで特権命令を下す」といったキメラ制御がより容易になりました。
⚠️ 旧バージョン(Ver 1.x.x)のサポート終了について
内部構造が根本から異なるため、本リリースをもって旧バージョンのサポートを終了いたします。
同梱のDemoコードもすべてVer 2.0.0仕様に書き換えておりますので、移行のガイドとしてご活用ください。
【移行のクイックヒント】
- 型の変更:
As CDPBrowserで宣言していた箇所の多くは、操作対象に応じてAs CDPContextへ。 - メソッドの集約: タブ生成や
TakeEventsなどの全体操作はCDPBrowserで。 - 呼称の変更:
invokeMethod系は、より直感的なExecuteCDP/ExecuteBiDiへ。
【開発者より:あとがき】
見てみたい方はこちら
「かつて、IEをVBAで動かしていたあの頃のような手軽さを、現代のChromiumでも実現したい」このプロジェクトは、ただそれだけの素朴な想いから始まりました。
外部のライブラリや重い実行環境を入れる必要もなく、ただ一つのExcelブックがあれば、そこがすべてのコントロールセンターになる。あのシンプルで愛おしい開発体験を、どうしても現代に蘇らせたかったのです。
そのために、ブラウザの「開かずの間」をこじ開け、自前でOSのパイプラインを引き、試行錯誤しながらイベント駆動の仕組みを構築してきました。
そして開発を進めるうちに、気がつけば、世界中で使われているPlaywrightやPuppeteerといったモダンなWeb自動化の「コアエンジン」がやっているのと同じ設計思想に、自力で一歩ずつ近づいていました。
その過程は決して平坦ではありませんでしたが、ブラウザの裏側の仕組みが少しずつ解き明かされ、自分の手の中でパズルのように噛み合っていく瞬間は、言葉にできないほどの喜びでした。
現代のWeb自動化は、時に複雑で、大掛かりな環境構築を求められます。
しかし、この「CDP & BiDi for Excel」があれば、Excelを開き、コードを書き、F5キーを押すだけで、あの頃と同じように、しかし現代の力強さでブラウザが動き出します。
かつての「手軽さ」への憧れが、回り回って「最先端の仕組み」を自ら生み出す力になりました。
このツールが、同じように「外部依存禁止環境」と「確実な制御」を必要としている誰かの力になることを願っています。
2026.06.06
開発者より 🦊