我有一个vba宏,将用不同的页面设置打印字母两次。这很有效。但有时(我不知道为什么)打印对话框(选择打印机,…)出现。如何隐藏打印对话框?我喜欢用默认的打印机打印,不喜欢更改设置。
有人出主意了
ActiveDocument.PrintOut Background:=true
Word允许您控制DocumentBeforePrint事件,从而提供了控制打印对话框显示的访问权限。此事件需要手动添加到VBA代码中。是控制单个文档的对话框,还是控制将来所有文档的对话框,取决于代码是放在单个文档中,还是放在生成新文档的模板中。
将以下代码添加到ThisDocument的VBA声明部分:
Option Explicit
Private WithEvents app As Application
然后编辑Document_New()
和Document_Open()
子目录,包括这一行:
Set app = Application
最后,用以下代码创建DocumentBeforePrint子(同样在ThisDocument中):
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
等方法访问打印函数,后者将显示打印对话框。