Skip to content

Excelに取り残された「負の遺産」 ​

Internet Explorer(IE)のサポートが完全終了して早数年。世の中のWeb技術は劇的に進化しましたが、Excel VBAのUserFormには、いまだに「Microsoft Web Browser」というIEベースの化石のようなコントロールが存在しています。

化石コントロール

「いつになったらExcelにもWebView2(モダンブラウザコントロール)が来るんだろう……」と待ち焦がれていましたが、なぜかAccessには先行してWebView2コントロールが登場するという理不尽な事態に直面。

Access先行

「Excelには権限がないのか!?」という嫉妬と絶望の中、私は決意しました。

「公式が用意してくれないなら、今のExcel環境だけでWebView2を埋め込んで、自力で完全制御する仕組みを作ってやる!」

今回は、その執念の末に見つけ出した「3つのパターン」を公開します。
ページを進めるごとに真の目的達成に近づくとともに、デメリットが肥大化するというトレードオフがありますが、執筆時点ではどうしても発生してしまいます。

TIP

IEのサポートは2029年ごろで完全に終わるそうなので、きっとその時にExcelにも公式でWebView2が使える日が来ると願っています。それまで待てない、今すぐUserFormにモダンブラウザを埋めたい!という方は、ぜひ読み進めてください。

v3.0.0での進展

執筆当初「Lv.99」は「理論上できるが本キットには未実装、他プロジェクトへのリンク紹介」という位置づけでした。v3.0.0で、この技法(COM/vtableハック)を本キット自身に CDPCoreViaWebView2.cls / WebView2Thunks.bas として実装し、CDPContext/CDPElementから通常のCDP制御と同じ感覚で使えるようになりました。また、Lv.1(Edge埋め込み)はこの実装に伴い廃止されています。v3.1.0では拡張機能インストール等にも対応しました。詳細は各ページを参照してください。

前提条件:絶対の「プリインストール環境」縛り ​

企業のセキュリティが厳しい昨今、外部のexeツールや有志の怪しいDLLを勝手にダウンロードして組み込むことはご法度です。そのため、今回は以下の縛りプレイで挑みました。

  • 追加ダウンロード一切禁止(完全外部依存ゼロ)
  • Windows標準機能と、Officeのプリインストール環境のみを使用

INFO

Excel自体は後入れソフトですが、業務PCにはほぼ100%プリインストールされているため「標準環境」とみなします。

3つのパターン ​

レベル手法概要
Lv.1Edge 埋め込み(v3.0.0で廃止)msedge.exe を Kiosk + CDP で UserForm にドッキング
Lv.10PowerShell 経由Power Query 同梱 DLL で真の WebView2
Lv.99Excel 単体(v3.0.0でネイティブ実装)COM / vtable ハックで VBA メモリ空間から直接制御

比較の結論は 総括 へ。

Excel VBA × CDP / WebDriver BiDi