2017-12-07 17 views
-1

docをpdfに変換できましたが、私はwinwordプロセスを終了できません。interopライブラリを使用しているときに単語を閉じる - VB.net

Dim wordApplication As Object = New Microsoft.Office.Interop.Word.Application 
    Dim wordDocument As Object 
    wordApplication.displayalerts = Word.WdAlertLevel.wdAlertsNone 
    wordDocument = New Microsoft.Office.Interop.Word.Document 
    'wordDocument = Nothing 
    Dim outputFilename As String 
    Dim filename As String 

    filename = "c:\TestInvoice.doc" 

    Try 
     wordDocument = wordApplication.Documents.Open(filename, ReadOnly:=False) 
     outputFilename = System.IO.Path.ChangeExtension(filename, "pdf") 

     If Not wordDocument Is Nothing Then 
      wordDocument.ExportAsFixedFormat(outputFilename, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF, False, Microsoft.Office.Interop.Word.WdExportOptimizeFor.wdExportOptimizeForOnScreen, Microsoft.Office.Interop.Word.WdExportRange.wdExportAllDocument, 0, 0, Microsoft.Office.Interop.Word.WdExportItem.wdExportDocumentContent, True, True, Microsoft.Office.Interop.Word.WdExportCreateBookmarks.wdExportCreateNoBookmarks, True, True, False) 
     End If 
     'Threading.Thread.Sleep(3000) 

     If File.Exists(System.IO.Path.ChangeExtension(filename, "pdf")) Then 
      MessageBox.Show(System.IO.Path.ChangeExtension(filename, "pdf")) 
     End If 
     'wordDocument = Nothing 

     'wordApplication.Documents(filename).Close(Word.WdSaveOptions.wdDoNotSaveChanges) 

     'wordDocument.dispose() 

     'wordApplication.quit(False) 
     wordDocument.close() 

     wordApplication.application.quit(False) 
     wordApplication = Nothing 

私はかなり多くを試してきました。過去数日間私の頭を傷つけてきました。あなたは正しい方向に向けることができますか?

+1

可能な重複VB.NET?](https://stackoverflow.com/questions/10309365/the-proper-way-to-dispose-excel-com -object-using-vb-net) - 特にGovertの回答(https://stackoverflow.com/a/38111107/1115360)を参照してください。 –

+0

@AndrewMorton - 残念ながら、そのすべてを試してみましたが、releaseObjectを動作させることができませんでした。それは認識されません。 –

+0

Govertの答えを見ると、それを行う方法がわかります。また、[私の答え](https://stackoverflow.com/a/45650494/1115360)をGovertの答えを使った別の質問にも見てください。 –

答えて

0

Usingステートメントを試しましたか?

これですべてをラッピングしてください。

Using wordApplication As Object = New Microsoft.Office.Interop.Word.Application 

End Using 
使用してExcelのCOMオブジェクトを配置する[適切な方法の
+0

応答していただきありがとうございます -無効な例外0x80004002 COMオブジェクトタイプMicrosoft.office.Interop.Word.applicationclassをインターフェイスタイプSystem.idisposableにキャストできませんでした –

+0

大変申し訳ありませんが、 iDisposableを実装していないようです。 –

関連する問題