ExcelVBAにてオブジェクトに他ブックやIEを格納して使用していますが、
インスタンスの解放がうまくいかず、状態を調査したいと思っています。
マクロのおいてあるワークブックから、接続中インスタンスをまとめて取得する方法を教えてください。
回答ありがとうございます。
早速、明日GetObject関数で取得を試みます。
これで解決したらとても助かります。
Nothingを実施するとExcelVBAの管理下を離れ、OS管理下でガベージコレクションを待つという形になりますので「GetObject関数を使って、1つずつNothing」は使えない手ですし、OS管理下に制御が移ってしまったものの制御はVBAの範疇ではなくVBの範疇となりますので、大げさな話になってしまいます
具体的にどのようなコードを書いていて、うまくいかないとはどのような状態を指しているのかが判らないのでヒントのみとりあえず書きますが、ループ処理の中でSet と Nothing を繰り返しているのだとすれば、そのルーチンが回っている間はガベージコレクションは実施されないので、トリガ駆動にすることを考えるか、インスタンスの生成を最小限にする(作成したインスタンスを使いまわす)ことを考えたほうがよろしいでしょう
回答ありがとうございます。
Excelブック内のデータをIEで検索するマクロなのですが、パスワードが必要なサイトで検索を行うため認証後のページをすべてのウィンドウからタイトルとクラスをキーで特定して利用してます。ExcelのWorkBook_Openイベントからマクロにショートカットキーを割り当てているのでこれが怪しいと思っているのですが、原因を特定する方法はないかと悩んでいるところです。
目的は不要なインスタンスをkillすることなので、ひとまずどたんさんの方法でやってみます。
回答ありがとうございます。
早速、明日GetObject関数で取得を試みます。
これで解決したらとても助かります。