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

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

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

Excelの参照設定で、シートを追加するとプロセスが閉じない

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■89919 / inTopicNo.1)  Excelの参照設定で、シートを追加するとプロセスが閉じない
  
□投稿者/ hama (1回)-(2019/01/16(Wed) 22:11:10)

分類:[VB.NET/VB2005 以降] 

お世話になります。
以下12行目のコメントを外すと(シート追加)エクセルのプロセスが閉じなくなります。
解決方法をご教授頂けると助かります。
-------------------
Imports Microsoft.Office.Interop
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim xlApplication As New Excel.Application
        Dim xlbooks As Excel.Workbooks = xlApplication.Workbooks
        Dim xlBook As Excel.Workbook = xlbooks.Open("c:\test.xlsx")
        Dim xlSheets As Excel.Sheets = xlBook.Worksheets
        Dim xlSheet As Excel.Worksheet = xlSheets(1)
        Dim xlCells As Excel.Range = xlSheet.Cells
        'xlSheet = xlSheets.Add()

        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlCells)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheets)
        xlBook.Close(SaveChanges:=False)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlbooks)
        xlApplication.Quit()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApplication)
    End Sub

End Class

引用返信 編集キー/
■89920 / inTopicNo.2)  Re[1]: Excelの参照設定で、シートを追加するとプロセスが閉じない
□投稿者/ Hongliang (742回)-(2019/01/16(Wed) 22:23:35)
> Dim xlSheet As Excel.Worksheet = xlSheets(1)
で取得したWorksheetオブジェクトと
> 'xlSheet = xlSheets.Add()
で追加したWorksheetオブジェクトは別ものなので、それぞれについてReleaseComObjectする必要があります。
引用返信 編集キー/
■89921 / inTopicNo.3)  Re[2]: Excelの参照設定で、シートを追加するとプロセスが閉じない
□投稿者/ hama (2回)-(2019/01/16(Wed) 22:45:45)
Hongliangさん

お世話になります、
それぞれについてReleaseComObjectしたところ、無事プロセスを閉じることが出来ました。
ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ