【问题标题】:Add custom menu option in mouse right click event在鼠标右键单击事件中添加自定义菜单选项
【发布时间】:2014-12-13 11:27:45
【问题描述】:

在文档中选择了某些单词并右键单击时,应调用宏函数。或者类似的,应该添加自定义右键菜单选项,当我单击该菜单选项时,应该调用宏。

例如:

在文档中,我有四位数字,例如 2001 和 2010。当我选择四位数字并单击右键并按我的自定义菜单选项时,应该调用宏并选择四位数字。应该解析成被调用的宏函数。

我有一些代码,但它是用于 Excel 的,我不知道如何为 Microsoft Word 定制它。

excel代码:

Const strMacro = "YourCode"

Sub CreateMacro()
   Dim cBut
   Call KillMacro
   Set cBut = Application.CommandBars("Cell").Controls.Add(Temporary:=True)
   With cBut
       .Caption = strMacro
       .Style = msoButtonCaption
       .OnAction = "Test_Macro"
   End With
End Sub

Sub Test_Macro()
   MsgBox "I work"
End Sub

Sub KillMacro()
   On Error Resume Next
   Application.CommandBars("Cell").Controls(strMacro).Delete
End Sub

【问题讨论】:

  • 您使用的是什么版本的 Word?执行此操作的方法会有所不同,具体取决于您是否将 Word 与功能区一起使用。

标签: vba mouseevent ms-word


【解决方案1】:

对于 Microsoft Word 2007,我已经粘贴了宏代码以在鼠标右键单击事件中添加自定义菜单选项并将所选文本放入函数中。

宏:

Option Explicit
Sub CreateMacro()
    Dim MenuButton As CommandBarButton
    With CommandBars("Text")
        Set MenuButton = .Controls.Add(msoControlButton)
        With MenuButton
            .Caption = "Press Me"
            .Style = msoButtonCaption
            .OnAction = "Test_Macro"
        End With
    End With
End Sub

Sub Test_Macro()
    MsgBox Selection.text
End Sub

Sub ResetRightClick()
    Application.CommandBars("Text").Reset
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-16
    • 2018-04-24
    • 2019-05-07
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    相关资源
    最近更新 更多