修改上下文菜单

时间:2016-04-06 08:06:40

标签: word-vba

我有以下代码在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

1 个答案:

答案 0 :(得分:0)

Word为每个上下文相关菜单提供了完全不同的CommandBar对象,而不是动态更改单个菜单的内容。这意味着您需要对命令应出现的每个上下文进行更改。

您可以通过循环集合并将各种属性写出来(例如,在新文档中)来生成CommandBars列表。然后你必须检查那个列表,找出可能的候选人,运行你的代码然后看看你猜对了。

您希望非常小心这些更改在Word中保存。如果您没有专门指定它,Word可以将更改保存在一个位置并将其删除(假设您"撤消"您的更改)在另一个位置。这可能会破坏Word配置并使用户非常不满意。因此,总是在更改Application.CustomizationContext的代码开头使用CommandBarsCustomizationContext可以是任何DocumentTemplate对象。

注意:自Word 2010起,CommandBars对象实际上已弃用。从Word 2013开始,应使用功能区XML自定义上下文菜单。只是说......在将来的版本中,你的代码将不再有效。