在打印word文档之前运行宏

mpa*_*mpa 5 word-vba

我在Word 2010中有一个宏,它在打印时为文档添加页脚(即在打印预览屏幕中单击"最终"打印按钮后).

目前,为了填充文档,用户需要首先运行宏,并且只有在运行它之后,当他们打印文档时,才会添加页脚.

我想自动运行宏的部分,因此选择打印选项(Ctrl + P /文件>打印)将自动运行宏并打开打印预览屏幕进行最终打印.

如何才能做到这一点?

先感谢您

Fre*_*ers 2

http://forums.whirlpool.net.au/archive/2603917

您需要做三件事才能使其发挥作用:

通过 ALT+F11 打开 VBA 编辑器

要创建模块或类,请右键单击并转到“插入>>模块/类”

测试:关闭并重新打开并打印

  • 它应该显示一个框,上面写着“打印前”

插入>>模块

Reg_Event_Handler


Dim X As New EventClassModule
Sub Register_Event_Handler()
Set X.App = Word.Application
End Sub
Run Code Online (Sandbox Code Playgroud)

对于这个,双击“ThisDocument”并将其粘贴到打开的框中。

Private Sub Document_Open()
Register_Event_Handler
End Sub
Run Code Online (Sandbox Code Playgroud)

插入>>类模块

EventClassModule


Public WithEvents App As Word.Application
Private Sub App_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
' Run code directly inside this Sub OR
MsgBox "Before Print"
' Call another Sub here, note, Sub and Module name can't match
Call Greetings
' See https://www.freesoftwareservers.com/wiki/compile-error-expected-variable-or-procedure-not-module-macros-microsoft-office-29982732.html
End Sub
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述