Vba Word 2007:隐藏打印对话框

Vba Word 2007:隐藏打印对话框,vba,ms-word,word-2007,printdialog,Vba,Ms Word,Word 2007,Printdialog,我有一个vba宏,它将使用不同的页面设置打印一封信两次。这很有效。但有时我不知道为什么打印对话框选择打印机。。。显得如何隐藏打印对话框。我喜欢在默认打印机上打印,不喜欢更改设置 有人有主意吗 ActiveDocument.PrintOut Background:=true 没有任何效果。Word允许您控制DocumentBeforePrint事件,从而允许您控制打印对话框的显示。此事件需要手动添加到VBA代码中。您是控制单个文档的对话框还是控制所有未来文档的对话框将取决于代码是放置在单个文档中

我有一个vba宏,它将使用不同的页面设置打印一封信两次。这很有效。但有时我不知道为什么打印对话框选择打印机。。。显得如何隐藏打印对话框。我喜欢在默认打印机上打印,不喜欢更改设置

有人有主意吗

ActiveDocument.PrintOut Background:=true

没有任何效果。

Word允许您控制DocumentBeforePrint事件,从而允许您控制打印对话框的显示。此事件需要手动添加到VBA代码中。您是控制单个文档的对话框还是控制所有未来文档的对话框将取决于代码是放置在单个文档中还是放置在生成新文档的模板中

将此代码添加到此文档的VBA声明部分:

 Option Explicit
 Private WithEvents app As Application
然后编辑“文档”“新建”和“文档”“打开”子项以包括此行:

 Set app = Application
最后,使用以下代码在此文档中再次创建DocumentBeforePrint子文件:

 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行取消标准打印对话框,以便代码不会尝试打印文档两次。此解决方案的前提是,您现有的宏打印文档,而无需通过DialogswdDialogFilePrint.Show等方法访问打印功能,该方法将显示打印对话框。希望这有帮助