Word 2007:隐藏打印对话框

时间:2011-09-05 07:22:27

标签: vba ms-word word-2007 printdialog

我有一个vba宏,它将使用不同的页面设置打印两次字母。这非常有效。但有时(我不知道为什么)会出现打印对话框(选择打印机,......)。如何隐藏打印对话框。我喜欢在默认打印机上打印,不喜欢更改设置。

有人有点想法

ActiveDocument.PrintOut Background:=true

没有任何影响。

1 个答案:

答案 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等方法访问打印功能,这将显示打印对话框。希望这会有所帮助。