人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

接続中インスタンスの取得方法
ExcelVBAにてオブジェクトに他ブックやIEを格納して使用していますが、
インスタンスの解放がうまくいかず、状態を調査したいと思っています。
マクロのおいてあるワークブックから、接続中インスタンスをまとめて取得する方法を教えてください。

●質問者: doncho
●カテゴリ:コンピュータ
✍キーワード:IE インスタンス オブジェクト マクロ 接続
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● どたん
●50ポイント ベストアンサー

GetObject関数を使って、1つずつNothingにしていけばいいのではないでしょうか。

◎質問者からの返答

回答ありがとうございます。

早速、明日GetObject関数で取得を試みます。

これで解決したらとても助かります。


2 ● うぃんど
●50ポイント

Nothingを実施するとExcelVBAの管理下を離れ、OS管理下でガベージコレクションを待つという形になりますので「GetObject関数を使って、1つずつNothing」は使えない手ですし、OS管理下に制御が移ってしまったものの制御はVBAの範疇ではなくVBの範疇となりますので、大げさな話になってしまいます

具体的にどのようなコードを書いていて、うまくいかないとはどのような状態を指しているのかが判らないのでヒントのみとりあえず書きますが、ループ処理の中でSet と Nothing を繰り返しているのだとすれば、そのルーチンが回っている間はガベージコレクションは実施されないので、トリガ駆動にすることを考えるか、インスタンスの生成を最小限にする(作成したインスタンスを使いまわす)ことを考えたほうがよろしいでしょう

◎質問者からの返答

回答ありがとうございます。

Excelブック内のデータをIEで検索するマクロなのですが、パスワードが必要なサイトで検索を行うため認証後のページをすべてのウィンドウからタイトルとクラスをキーで特定して利用してます。ExcelのWorkBook_Openイベントからマクロにショートカットキーを割り当てているのでこれが怪しいと思っているのですが、原因を特定する方法はないかと悩んでいるところです。

目的は不要なインスタンスをkillすることなので、ひとまずどたんさんの方法でやってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ