我有一个vba宏,它将使用不同的页面设置打印两次字母。这非常有效。但有时(我不知道为什么)会出现打印对话框(选择打印机,......)。如何隐藏打印对话框。我喜欢在默认打印机上打印,不喜欢更改设置。
有人有点想法
ActiveDocument.PrintOut Background:=true
没有任何影响。
答案 0 :(得分:0)
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
等方法访问打印功能,这将显示打印对话框。希望这会有所帮助。