2011-09-05 102 views
1

我有一個vba宏,它將使用不同的頁面設置打印兩次字母。這很好。但有時(我不知道爲什麼)出現打印對話框(選擇打印機,...)。我怎樣才能隱藏打印對話框。我喜歡在默認打印機上打印,不想更改設置。Word 2007:隱藏打印對話框

有人的想法

ActiveDocument.PrintOut Background:=true 

不要有任何效果。

回答

0

Word允許您控制DocumentBeforePrint事件,這反過來又提供了一個訪問來控制打印對話框的顯示。這個事件需要手動添加到你的VBA代碼中。無論是控制單個文檔的對話框還是所有將來的文檔,都取決於代碼是放在單個文檔還是生成新文檔的模板中。再次

Set app = Application 

最後,創建DocumentBeforePrint子(:

這個代碼添加到VBA聲明節的ThisDocument:

Option Explicit 
Private WithEvents app As Application 

然後編輯Document_New()Document_Open()潛艇,包括這條線本文檔)用以下代碼:

Private Sub app_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean) 

'Invoke your macro to print a letter twice with different settings here 

Cancel = True 

End Sub 

Cancel = True行取消標準的打印對話框,以便代碼不嘗試打印文檔兩次。此解決方案運行的前提是您的現有宏將打印文檔而不通過諸如Dialogs(wdDialogFilePrint).Show之類的方法訪問打印功能,該方法將顯示打印對話框。希望這可以幫助。