DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Excelが閉じない

  • 題名: Excelが閉じない
  • 著者: kage
  • 日時: 2004/04/22 16:55:29
  • ID: 3793
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WindowsXP,2000 Office2003]
分類:[.NET]

kageです、お世話になります。

VB.NETでエクセルの起動と終了をさせています。
起動は、何度でもいけますが、終了は1回だけできて、2度目からはできません。
コードは以下の通りです。

Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim objExcel As Excel.Application = Nothing
objExcel = CType(CreateObject("Excel.Application"), Excel.Application)
objExcel.Visible = True
objExcel.Workbooks.Add()
objExcel = Nothing
End Sub

Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim objExcel As Excel.Application = Nothing
objExcel = CType(GetObject(, "Excel.Application"), Excel.Application)
objExcel.Quit()
objExcel = Nothing
End Sub
2度目からButton4は無視されます。よろしくお願いします。
この手の話題には詳しくありませんが、CreateObjectで取得したオブジェクトを保持しておき、そのオブジェクトのQuitメソッドを呼び出す方法ではうまく閉じられるようです。
  • 題名: Re[2]: Excelが閉じない
  • 著者: kage
  • 日時: 2004/04/25 10:03:00
  • ID: 3829
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
管理人さん、お世話になります。

> この手の話題には詳しくありませんが、CreateObjectで取得したオブジェクトを保持しておき、そのオブジェクトのQuitメソッドを呼び出す方法ではうまく閉じられるようです。

以下の通り、書き換えてみました。 確かに作動します。
Dim objExcel As Excel.Application

Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
objExcel = CType(CreateObject("Excel.Application"), Excel.Application)
objExcel.Visible = True
objExcel.Workbooks.Add()
End Sub

Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click
objExcel.Quit()
End Sub

ただWORDの場合、以前のコードで何度でも起動・終了を繰り返すことができます。
VB6ベースのVBAとVB.NETの親和性の問題なんでしょうか?
これ以外にも、WORDやEXCELをコントロールしようとすると、問題がたくさん出てきます。
別の問題は、別途質問をさせていただきます。ありがとうございました。 kage
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板