C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 47 を表示中)
■25372 / )  Re[4]: EXCEL2000でプロセスが開放されない
□投稿者/ しんくん (3回)-(2008/09/18(Thu) 14:40:00)
2008/09/18(Thu) 14:40:31 編集(投稿者)
お世話になります。
おてやわらか様のご指摘通りに1つずつ確認しているのですが、
EXCELをオープンしてCLOSEするだけで、EXCELプロセスが消えません。
何がおかしいか、ご教授願えませんでしょうか?
Dim xlApplication As Excel.Application = Nothing
' COM オブジェクトの解放を保証するために Try 〜 Finally を使用する
Try
    xlApplication = New Excel.Application()
    ' 警告メッセージなどを表示しないようにする
    xlApplication.DisplayAlerts = False
    Dim xlBooks As Excel.Workbooks = xlApplication.Workbooks
    Try
        ' 既存の Excel ブックを開く
         Dim xlBook As Excel.Workbook = xlBooks.Open(wsPath)
         Try

         'この間はコメントアウトしています。

         Finally
            If Not xlBook Is Nothing Then
                Try
                    xlBook.Close()
                Finally
                    Dim iRemainCount As Integer = System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
                    MessageBox.Show("参照カウントの残り(xlBook) == " & iRemainCount.ToString())
                    xlBook = Nothing
                End Try
           End If
       End Try
    Finally
        If Not xlBooks Is Nothing Then
            Dim iRemainCount As Integer = System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks)
            MessageBox.Show("参照カウントの残り(xlBooks) == " & iRemainCount.ToString())
            xlBooks = Nothing
       End If
    End Try
Finally
    If Not xlApplication Is Nothing Then
        Try
            xlApplication.Quit()
        Finally
            Dim iRemainCount As Integer = System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApplication)
            MessageBox.Show("参照カウントの残り(xlApplication) == " & iRemainCount.ToString())
            xlApplication = Nothing
        End Try
    End If
End Try


返信 編集キー/


管理者用

- Child Tree -