タイトル : Re^2: エクセルのプロセス(シート名変更)終了できない 投稿日 : 2015/12/09(Wed) 01:35 投稿者 : 花ちゃん
下記なら一応解放されます。(カウントが 0 になるので) 但し、after:= の部分の処理はどのようにすべきか解らないので取りあえずこのままで Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim oExcel As Object = CreateObject("Excel.Application") oExcel.Visible = True Dim oBooks As Object = oExcel.Workbooks Dim XlsFileName As String = "g:\Test.xls" Dim oBook As Object = oBooks.open(XlsFileName) Dim oSheets As Object = oBook.Worksheets Dim oSheet As Object = oSheets("HYOSI") oSheet.Copy(after:=oSheet) 'この処理は正しいとは言えません。 Dim oSheet1 As Object = oSheets("HYOSI (2)") oSheet1.Name = CStr(123) 'これだけカウントが余計に上がるので Dim cu As Integer = System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oSheet) Console.WriteLine(cu.ToString) cu = System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheet1) Console.WriteLine(cu.ToString) cu = System.Runtime.InteropServices.Marshal.ReleaseComObject(oSheets) Console.WriteLine(cu.ToString) oBook.Close(False) cu = System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook) Console.WriteLine(cu.ToString) cu = System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks) Console.WriteLine(cu.ToString) oExcel.Quit() cu = System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel) Console.WriteLine(cu.ToString) End Sub |