1

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

有人出主意

ActiveDocument.PrintOut Background:=true

没有任何影响。

4

1 回答 1

0

Word 允许您控制 DocumentBeforePrint 事件,这反过来又提供了一种访问控制打印对话框显示的权限。此事件需要手动添加到您的 VBA 代码中。您是否控制单个文档或所有未来文档的对话框将取决于代码是放置在单个文档中还是生成新文档的模板中。

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

 Option Explicit
 Private WithEvents app As Application

然后编辑Document_New()and Document_Open()subs 以包括这一行:

 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显示打印对话框的方法访问打印功能。希望这可以帮助。

于 2011-09-06T16:54:46.740 回答