1. はじめに
業務システムの自動化(会計システムからのデータ取得や帳票出力など)において、外部のWebDriver(Selenium等)や専用RPAソフトのインストールが制限されている環境でも稼働する 「VBA × PowerShell 5.1 × WebView2 ハイブリッドRPA操作エンジン」を再構築(v303) して GitHubで全モジュールと検証コード等を更新しました。
// GEMINI 3.1Proで開発したコードを、Gemini 4 Argonで全モジュールを再検証・アップグレード //
2. 土台:汎用RPA操作エンジンの全体像
主コードである Excel VBA からJSON形式(VBA-JSON使用)でコマンドを送信し、PowerShellエンジン が WebView2(Native / CDP)および OSレベルの UIAutomation(Win32 API)を制御して結果をVBAへ返却する双方向アーキテクチャです。
本システムの核(土台)は 汎用RPA操作エンジン(Ps_Engine_Core) であり、F12開発者ツールが制限された端末での開発を補助する 要素ピッカー(Lib-DevTools) を拡張モジュールとして同梱しています。
主な特徴
- インストーラー不要で稼働: OS標準のPowerShell 5.1とWebView2ランタイム(DLL)のみで動作します。
- 多段iframe・Shadow DOMの透過探索: ページ生成時に共通JS(deepQuerySelector / utilFindInFrames)を自動注入し、フレーム階層を意識せず単一コマンドで操作します。
- 3段階の制御経路と物理フォールバック: WebView2 Native APIとCDP(WebSocket高速通信)に加え、JS操作が効かない画面では記録座標(BoundingBox)からDPR・スクロール量を自動補正してOS物理クリック・キー入力へフォールバックします。
- ポップアップの仮想タブ捕獲とサイレントDL: window.open による別ウィンドウ要求をエンジン内部の仮想タブとして捕獲し、Fetch API や DownloadStarting 継承により保存ダイアログを出さずにファイルを保存します。
3. 開発補助:WebView2 × UIAutomation 要素ピッカー
F12開発者ツールが使えない環境において、マウスポインタの位置からShadow DOMや同一オリジンiframeを貫通してCSSセレクタ(またはXPath)と絶対論理座標を逆引きし、直後に3回連続の安定性テスト(Test-SelectorStability)を行ってExcelシートへRPAコードを自動転記します。
4. 全モジュール・仕様書・検証レポート(GitHub)
基幹モジュール(5本)、拡張モジュール(6本)、VBAモジュール一式、および公開サイト・ローカルサンドボックスを用いた検証レポートを以下のGitHubリポジトリで公開しています。
🔗 GitHub リポジトリ:
- 📘 開発・運用仕様書 (m02):全体アーキテクチャ、JSON通信・例外パース仕様、座標変換式、コーディング規約
- 🧪 公開Webサイト&特殊DOM 検証レポート (m12):RPA Challenge実測、Shadow DOM突破、マスク解除待機、PDFのFetchサイレントDL検証
- 🎯 要素ピッカー&座標テスト 検証レポート (m13):Shadow DOM内の階層CSS生成、透過・隠蔽UI判別、座標自動テスト結果
「MITライセンスで公開しており、改変・組み込みも自由ですので、ぜひクローンして試してみてください」