我有以下代码在Word 2013右键菜单上添加菜单项:
Sub CreateMenuItem()
Dim MenuButton As CommandBarButton
With CommandBars("Text")
Set MenuButton = .Controls.Add(msoControlButton)
With MenuButton
.Caption = ChrW(&H2714) '"Correct"
.Style = msoButtonCaption
.OnAction = "InsertMark"
End With
End With
End Sub
问题是当我右键单击文本框或表格时,不会显示新的菜单项。
如何删除我未使用的菜单项,例如"翻译"
请协助 Thinus
答案 0 :(得分:0)
Word为每个上下文相关菜单提供了完全不同的CommandBar
对象,而不是动态更改单个菜单的内容。这意味着您需要对命令应出现的每个上下文进行更改。
您可以通过循环集合并将各种属性写出来(例如,在新文档中)来生成CommandBars列表。然后你必须检查那个列表,找出可能的候选人,运行你的代码然后看看你猜对了。
您希望非常小心这些更改在Word中保存。如果您没有专门指定它,Word可以将更改保存在一个位置并将其删除(假设您"撤消"您的更改)在另一个位置。这可能会破坏Word配置并使用户非常不满意。因此,总是在更改Application.CustomizationContext
的代码开头使用CommandBars
。 CustomizationContext
可以是任何Document
或Template
对象。
注意:自Word 2010起,CommandBars
对象实际上已弃用。从Word 2013开始,应使用功能区XML自定义上下文菜单。只是说......在将来的版本中,你的代码将不再有效。