我希望在word文件发送到打印机之前对其进行格式化检查,并且它需要对用户完全透明(没有额外的控件,只需使用UI提供的标准打印选项)。是否有OnPrint或BeforePrint事件,或者可以在这方面使用的东西,我可以附加一个宏,就像我可以使用Open,Close或Save一样?这感觉应该很简单......但这些都是着名的遗言。
提前致谢, 罗布
答案 0 :(得分:5)
您可以设置一个包装类来启用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
接下来,创建一个标准模块。这将是将应用程序实例加载到您的类中的子程序。将此标准模块命名为“Events”。然后粘贴此代码:
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应用程序事件。
关闭应用程序,下次打开文档,用户尝试打印时,代码将会执行。
希望有所帮助!