2017-06-29 82 views
0

我需要打印文檔並隱藏應用程序。我正在使用Microsoft Word 2010.VB - 打印Word文檔hidden/Visible = False

我試圖用黃色評論中顯示的代碼隱藏應用程序。

objWord.Visible =假

&

objDoc.ActiveWindow.Visible =假

但窗口仍然出現在這一行:

objDoc = objWord.Documents.Open("T:\Helsingborg\A\Transport\2. Transportdrift\11. M-trp\Fraktsedlar\Växjö\Växjö Mall.doc") 

而且一旦到達就會隱藏起來:

objDoc.ActiveWindow.Visible = False 

我真的找不到任何辦法來解決這個問題,因爲在打開文檔之前,我不能使用ActiveWindow.Visible = False

這是我當前的代碼。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
    ' Step 1 
    Dim objWord 
    objWord = CreateObject("Word.Application") 
    ' Hidden window! 
    objWord.Visible = False 
    ' Save the original printer, otherwise you will reset the system default! 
    Dim previousPrinter 
    previousPrinter = objWord.ActivePrinter 
    objWord.ActivePrinter = "" 

    ' Step 2 
    Dim objDoc 
    objDoc = objWord.Documents.Open("T:\Helsingborg\A\....\Växjö Mall.doc") 
    objDoc.ActiveWindow.Visible = False 
    ' Step 3 -- in this case, print out the document without any prompts 
    objDoc.PrintOut 
    ' Restore the original printer 
    objWord.ActivePrinter = previousPrinter 

    ' Step 4 
    objDoc.Close 

    ' Step 5 
    objWord.Quit 

    MsgBox("Everything is now printed") ' Change to custom MSGBOX 

End Sub 

編輯:另一種方法是,如果我可以不打開Word打印Word文檔。

+0

你有沒有嘗試設置Documents.Open()的可選參數 「可見:=假」? – soohoonigan

+0

添加到什麼@soohoonigan說... https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open.aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-1 –

+0

嘿,不起作用。它在屏幕上消失之前簡要地在屏幕上顯示該文檔。 我重寫了它,像這樣'objDoc = objWord.Documents.Open(LinDocPath,Visible = False)'我也嘗試過「Visible:= False」@soohoonigan – EliasWick

回答

0
set objDoc = GetObject(Filename) 
set objWord = objDoc.Parent 

到位Documents.Open聲明

objDoc.Close False