【发布时间】:2011-03-02 07:56:17
【问题描述】:
我希望在将 word 文件发送到打印机之前对其进行格式检查,并且它需要对用户完全透明(没有额外的控件,只需使用通过 UI 提供的标准打印选项)。是否有 OnPrint 或 BeforePrint 事件,或者可以在这方面使用的东西,我可以附加一个宏,就像我可以使用打开、关闭或保存一样?这感觉应该很简单……但这些都是著名的遗言。
提前致谢, 抢
【问题讨论】:
标签: vba printing ms-word ms-office
我希望在将 word 文件发送到打印机之前对其进行格式检查,并且它需要对用户完全透明(没有额外的控件,只需使用通过 UI 提供的标准打印选项)。是否有 OnPrint 或 BeforePrint 事件,或者可以在这方面使用的东西,我可以附加一个宏,就像我可以使用打开、关闭或保存一样?这感觉应该很简单……但这些都是著名的遗言。
提前致谢, 抢
【问题讨论】:
标签: vba printing ms-word ms-office
您可以设置一个包装类来启用 Word 的应用程序事件。
在您的文档中,您需要创建一个类模块。这个类模块将被称为“clsEvents”。将此代码粘贴到您的新类模块中:
Public WithEvents myApp As Word.Application
Public Sub myApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
'add your code here
MsgBox "Blah"
End Sub
接下来,创建一个标准模块。这将是将应用程序实例加载到您的类中的子程序。将此标准模块命名为“事件”。然后粘贴这段代码:
Public e As clsEvents
Public Sub SetupEvents(theApp As Application)
Set e = New clsEvents
Set e.myApp = theApp
End Sub
最后,我们需要调用您刚刚创建的子例程。最简单的方法是在“ThisDocument”模块的 document_open 事件上调用它。粘贴此代码:
Private Sub Document_Open()
SetupEvents Me.Application
End Sub
这也将允许您使用所有其他 Word 应用程序事件,这些事件通常在没有文档包装器的情况下隐藏。
关闭应用程序,下次打开文档,用户尝试打印时,您的代码将执行。
希望有帮助!
【讨论】: