0

Excel の別のインスタンスの UserForms コレクション (オブジェクト ブラウザーは VBA.Global のメンバーであることを示します) を取得する方法はありますか? フォームがロードされているかどうかを確認し、そうでない場合はリモート アプリケーションを適切に終了して、ゴースト プロセスを残さないようにする必要がありますが、これを簡単に検出する方法がわかりません。

おそらく、複雑な一連の API 呼び出しを使用して、すべての UserForm ウィンドウ ("ThunderDFrames") を識別し、次にそれらの親プロセスを識別し、次にそれらの親プロセスの hWnd を識別し、それが既知の Application オブジェクトの hWnd と一致するかどうかを検出できます。によってホストされていますが、アプリケーションをテストするために単純に UserForms コレクションを取得する方がはるかに洗練されているように感じます。

4

1 に答える 1

0

より簡単な答えとしては、いいえ。なんで?.

@Danielが指摘したように、異なるプロセスの各メモリは分離されており、互いに独立しているためです。したがって、少し重い設計をしないと、別のプロセスでメモリを読み取ることができません。

回避策は、UserForm のデータcollectionをワークブックに保存し、そこから読み取ることです。閉じたブックへの書き込みと読み取りのように。それはあなたの思い出の場所として機能します。効率的ではありませんが、実行可能です:)あまり汗をかかずに。

于 2013-01-08T12:25:10.153 に答える