2010-06-10 73 views
2

我希望在文件发送到打印机之前对它进行格式检查,并且它需要对用户完全透明(不需要额外的控制,只需使用通过UI提供的标准打印选项)即可。是否有一个OnPrint或BeforePrint事件,或者可以在这方面使用的一些我可以附加一个宏的方法,就像我可以使用Open,Close或Save一样?这感觉应该很简单......但这些都是最后的名言。Word 2007宏:有没有可以附加宏的OnPrint事件?

由于提前, 罗布

回答

4

你可以设置一个包装类来实现Word的应用程序事件。

在您的文档中,您将需要创建一个类模块。这个Class模块将被称为“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应用程序事件。

关闭应用程序,下次打开文档时,用户尝试打印,您的代码将执行。

希望有帮助!

+0

没有像黑客事件模型分开......谢谢! – notnot 2010-06-10 21:32:19

+0

很高兴工作:-) – Fink 2010-06-10 22:03:10