2011-09-05 103 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之类的方法访问打印功能,该方法将显示打印对话框。希望这可以帮助。