• 締切済み

IEを閉じる操作の取得

失礼ながら、続けての質問おゆるしください。 貴重な意見に対して少しでも点数を割り振れればと思い2つに分けて質問させて頂きます。 IEをExcelなどから操作する場合、直接IEの"X"閉じるを押されるとVBA側では、エラーになります。ネットで調べたところ、OnQuitイベントってのがあるようですが、具体的な使用法は見つかりませんでした。皆さんのお力をお借りできれば幸いと思い質問させていただきました。詳しい方よろしくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 お話が、少し変だなって思ったのは、開いた時点で、VBAが終わっていないのに、ユーザーが手動で終了させ、存在しなくなったオブジェクトを作業させようとすることが、もともとのVBAのエラーの原因になるのではありませんか? VBAを一旦終了させて、後から、もし、IEオブジェクトを再取得するなら、GetObject を使えばよいのであって、そこで、待機させるなら、IE を Visible =True にしているのが、根本的な原因だと思うのです。 それと、もともと、肝心な作業は何をさせるのでしょうか?Document の取得なら、まったく、IEを見えなくしてもよいと思います。

imoarai_99
質問者

補足

回答有難うございます。 指摘されたハッとして恥ずかしい限りです。 確かに、非表示で解決ですね!また、"X"の無効化なら、IEの話ではなくって、Windowsの話ですね? 大変失礼しました。 有難うございます

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 正しいやり方かどうかはわかりませんが、 とりあえず Microsoft Internet Controlsに参照設定して、 クラスモジュールに Public WithEvents objIE As InternetExplorer と宣言すれば、 Private Sub objIE_OnQuit() MsgBox "IEが閉じられました。" End Sub のような感じでInternetExplorer Objectの イベントが使えるようです。 ただ、 >直接IEの"X"閉じるを押されるとVBA側では、エラーになります。 これを回避するだけなら、 On Error GoTo で、エラートラップしてやるほうが簡単ではないでしょうか。

imoarai_99
質問者

お礼

回答有難うございます。 ご指摘の通りエラートラップで、再構築します。 軽率な質問大変お手数をおかけいたしました。 有難うございます。