我正在尝试在Word启动或打开另一个文档时保持某些宏运行,但我希望将它们从用户可以访问的宏列表中删除(alt + f8)。
我尝试添加'私有'而不是'公开',但这会因某些原因阻止它们完全运行。
Public Sub AutoExec()
DisplayStylesMenu
End Sub
Public Sub AutoNew()
DisplayStylesMenu
End Sub
Public Sub AutoOpen()
DisplayStylesMenu
End Sub
Public Sub DisplayStylesMenu()
' Opens the Formatting task pane (Style window)
Application.TaskPanes(wdTaskPaneFormatting).Visible = True
' Docks the window on the right
Application.CommandBars("Styles").Position = msoBarRight
End Sub
目前,AutoExec,AutoNew和AutoOpen都出现在可公开访问的宏列表中(因为'public'前缀),但是当向其中任何一个添加'private'时,它们会停止工作并且没有错误。
如何在启动时保持宏运行,打开文档等,同时将其隐藏在宏列表中?
答案 0 :(得分:4)
防止宏显示在宏列表中的一种方法是构造它们,以便它们至少需要一个参数。这实际上可能是一个“虚拟”变量,实际上不会被使用。
因此,在模块中声明一个常量,如下所示:
Const hiddenMacro as Boolean = True
我使用了布尔值,但你可以使用String,Integer,Long等。
然后,在您的AutoNew
子例程中,将此变量添加为必需参数:
Sub AutoNew(hiddenMacro as Boolean)
MsgBox "Hello, world!", vbInformation
End Sub
需要参数的宏不会出现在宏列表中:
更新在此,我将重点介绍ThisDocument
模块的内容,并在Normal.dot文件的ThisDocument
模块中清楚地显示所有代码所属的位置。< / p>