none
IEオブジェクトが途切れる RRS feed

  • 質問

  • 以下の様な方法でExcelVBA上からIEを起動しています。

    起動して大した事もせずクローズするとOnQuitイベントが取れるのですが

    IE上の表をコピーしてExcelシート上に貼り付けるというオペレーションを

    した後にIEをクローズするとOnQuitイベントが発生しなくなります。

    何故なのでしょうか?回避策は有りませんでしょうか?

    何方か御指導下さいますよう。よろしくお願いいたします。

    Private WithEvents IE As SHDocVw.InternetExplorer

    Private Sub CommandButton1_Click()
        Set IE = New SHDocVw.InternetExplorer
        '指定のURLを表示
        IE.Navigate ”http://www.?????????.html”
        IE.Visible = True    'IE を表示
    End Sub

    Private Sub IE_OnQuit()
        MsgBox "OnQuit"
    End Sub

    2010年3月23日 8:55

回答

すべての返信

  • エリックさん、こんにちは。

    こちらでもExcel 2007を使用して試してみましたが、現象を再現することが出来ませんでした。
    ご使用のバージョンを教えて頂けると、より適切なアドバイスを頂けるかもしれないので、
    お伝えしてもらえないでしょうか?

    尚、ご存じかもしれませんが、IE_OnQuit()でオブジェクトの開放処理を入れた方が良いかもしれません。

    その他アドバイスがありましたら、ご投稿よろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレーター 高橋春樹
    2010年3月26日 7:40
  • 高橋様

    ご意見ありがとう御座います。

     

    環境は

    Excel2000とIE7を使用しております。

     

    何方か御指導下さいますよう、よろしくお願いいたします。

    2010年3月29日 4:11
  • 私もExcel2000の環境をもっていたので、確認しましたが、シートに文字を貼り付け後、IE8を閉じたとき、正常にONQuitイベントが発生しました。
    SHDocVw.dllのバージョンは(6.00.2900.5512)です。SHDocVw.dllのバージョンはいくつを使っていますか?

    また、シートに文字を貼り付け時(Worksheet_Changeイベントなど・・・)に、Set IE = Nothingなどの開放処理をおこなっていることはないでしょうか?

    2010年3月31日 9:50
  • Kirinkemon2様
    ご返答ありがとう御座います。
    SHDocVw.dllのバージョンは6.00.2900.5512を使用しております。
    ちなみにOSはXPです。


    途切れる場合と途切れない場合が有る事に気がつきました。

    最初の投稿で
    >IE上の表をコピーしてExcelシート上に貼り付けるというオペレーションを
    と書きましたが。正確に言うと表データだけでなくIE内の目的のフレーム上で
    右クリックメニューの[すべて選択]を選んだ後に、
    再度、右クリックメニューの[コピー]を選び。
    ここで保存した物をExcelシートに貼り付けていました。

    この場合、どうしてもIEオブジェクトが途切れてしまいます。


    しかし、フレーム内の表データ部分だけをコピーしExcelシートに
    貼り付けた場合はIEオブジェクトは途切れませんでした。


    色んなサイトの画面でも試してみましたが[すべて選択][コピー]から
    貼り付けた場合、IEオブジェクトが途切れてしまうようです。

    なんとか回避出来ないものでしょうか?
    何方か御指導下さいますよう、お願いいたします。

    2010年4月1日 0:57
  • 確かに再現しました。
    "すべて選択"を使わないオペレーションを考えた方が良いかもしれませんね。

    • 回答としてマーク エリック 2010年4月19日 10:44
    2010年4月1日 19:12