|
分類:[VB.NET/VB2005 以降]
お世話になります。
COMオブジェクト開放について、教えて頂きたいのですが。
以下のコードを実装しましたが、If flag = 0の時に、エクセルのプロセスが終了しません。
但し、For文を全てコメントにするとエクセルのプロセスは終了します。
見当がつかず、困っています。
Dim i As Integer = 0
Dim flag As Integer = 0
Dim xlApp As New Excel.Application()
Dim xlBooks As Excel.Workbooks = xlApp.Workbooks
Dim xlBookOp As Excel.Workbook
Dim xlSheetsOp As Excel.Sheets
Dim xlSheetOp As Excel.Worksheet
Dim xlBook As Excel.Workbook
Dim xlSheets As Excel.Sheets
Dim xlSheet As Excel.Worksheet
'チェックシートファイルを開く
'読み取り専用で開く
xlBookOp = xlBooks.Open(xl1FilePath, ReadOnly:=True)
xlSheetsOp = xlBookOp.Worksheets
xlSheetOp = xlSheetsOp.Item(1)
'チェックシートファイルより「データテーブル生成シート」の検索&抽出
For i = 1 To xlBookOp.Worksheets.Count
If xlBookOp.Worksheets(i).Name = "データテーブル生成" Then
'チェックシートファイルより「データテーブル生成シート」を見つけた
xlSheetOp = xlSheetsOp.Item(i)
flag = 1
Exit For
End If
Next i
'「データテーブル生成シート」が存在しないか判断。
If flag = 0 Then
MsgBox("チェックシートファイル内に「データテーブル生成シート」が存在しません。" )
'ファイルを閉じる
xlBookOp.Close(xl1FilePath)
'COM オブジェクトの参照カウントを解放する
MRComObject(xlSheetsOp)
MRComObject(xlSheetOp)
MRComObject(xlBooks)
MRComObject(xlBookOp)
'Excel終了
xlApp.Quit()
MRComObject(xlApp)
Return result
End If
|