|
分類:[VB.NET/VB2005 以降]
2019/07/05(Fri) 15:20:43 編集(投稿者) 2019/07/05(Fri) 15:20:13 編集(投稿者) 2019/07/05(Fri) 15:18:23 編集(投稿者)
「VB.NET(VS2017)」より、Excelファイルを印刷するプログラムを組んでいますが、 既存のExcelファイルを印刷するとプロセスが残ってしまいます。
以下、ソースを記載します。 自分なりに調べてみて分かったことは、
exWorkbook = exApp.Workbooks.Add("C:\Test.xls") → 上記を記載するとプロセスが残ります。
exWorkbook = exWorkbooks.Add → 上記を記載するとプロセスが残りません。
--------------------------------------------------------------------------------------- Private ExcelTest() Dim exlMng As ExcelManager = New ExcelManager Dim exApp As Excel.Application = Nothing 'Excelオブジェクト Dim exWorkbooks As Excel.Workbooks = Nothing 'WorkBooksオブジェクト Dim exWorkbook As Excel.Workbook = Nothing 'WorkBookオブジェクト Dim exWorkSheets As Excel.Sheets = Nothing 'Worksheetsオブジェクト Dim exSheet As Excel.Worksheet = Nothing 'Worksheetオブジェクト
exApp = New Excel.Application exApp.Visible = False '非表示 exWorkbooks = exApp.Workbooks
'↓のコメントを外すとプロセス残りません。 'exWorkbook = exWorkbooks.Add '↓のコメントを外すとプロセス残ります。 'exWorkbook = exApp.Workbooks.Add("C:\Test.xls")
exWorkSheets = exWorkbook.Worksheets 'シート参照 exSheet = DirectCast(exWorkSheets.Item(1), Excel.Worksheet)
'xlsファイルを印刷する exSheet.PrintOut(Preview:=False) exWorkbook.Saved = True
'アプリケーション終了 exWorkbook.Close() exApp.Quit()
'Excelオブジェクトの解放 Marshal.ReleaseComObject(exSheet) exSheet = Nothing Marshal.ReleaseComObject(exWorkSheets) exWorkSheets = Nothing Marshal.ReleaseComObject(exWorkbook) exWorkbook = Nothing Marshal.ReleaseComObject(exWorkbooks) exWorkbooks = Nothing Marshal.ReleaseComObject(exApp) exApp = Nothing End Sub ---------------------------------------------------------------------------------------
プログラムに不備があれば、ご教示ください。
|