我使用的是我在Internet上找到的底部代码,用于向Word 2013右键单击菜单添加命令。现在我已经使用它了,我希望能更好地理解它,并且有人可以向我解释一些参数。我想更好地理解它,并且我希望再次运行它以添加更多命令。官方微软的帮助参考只会让我感到困惑。
Before:=30
如何运作?起初我以为它只是从右键菜单的顶部倒计时,但是当我这样做时,我的命令在错误的地方结束。我认为必须计算一直没有显示的命令。
Tag:="Save"
和.Tag = "Save"
是否相同,是什么?
什么是.Caption
?
以上三个参数看起来非常相似。
Sub EditRightClickMenu()
'
'
'
Dim cb As CommandBar
Dim ctl As CommandBarButton
On Error GoTo bye
CustomizationContext = NormalTemplate
Set cb = CommandBars("Text")
Set ctl = cb.FindControl(Tag:="Save")
If ctl Is Nothing Then
Set ctl = cb.Controls.Add(Type:=msoControlButton, _
Before:=30, Temporary:=True)
With ctl
.Caption = "Save"
.Tag = "Save"
.FaceId = 3
.BeginGroup = True
.OnAction = "MySave"
End With
End If
bye:
End Sub
答案 0 :(得分:0)
Before:=30
确实是您希望插入新控件的菜单上的命令。如果您从代码中删除行On Error GoTo bye
行并在正常的字词安装上运行,则会在尝试设置该行时出错:
Set ctl = cb.Controls.Add(Type:=msoControlButton, _
Before:=30, Temporary:=True)
这是因为默认文本右键菜单上没有30个控件。将其更改为5,它将正常工作。
Tag:="Save"
和.Tag="Save"
略有不同。指定方法的变量输入时使用Tag:=
表示法,在这种情况下是Tag
函数FindControl
的输入。如果在编辑器中选择FindControl
时按键盘上的Shift + F2,它将带您进入方法的定义和所有变量。 .Tag
表示法引用了对象属性,在这种情况下,Tag
被设置为"Save"
,因此可以在重新运行宏时找到它。
最后.Caption
仅仅是菜单控件创建后显示的文本。