1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VBA × PowerShell 5.1 × WebView2 ハイブリッドRPA操作エンジン

1
Last updated at Posted at 2026-10-31

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操作エンジン全体像

本システムの核(土台)は 汎用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 リポジトリ:

「MITライセンスで公開しており、改変・組み込みも自由ですので、ぜひクローンして試してみてください」

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?