【问题标题】:How to connect customUI events to macros in Word 2010?如何将 customUI 事件连接到 Word 2010 中的宏?
【发布时间】:2023-09-29 18:35:01
【问题描述】:

我有一个 MS Word 2010 启用宏的文档模板(.dotm 文件)。我正在通过 .dotm 存档中的 customUI\customUI14.xml 文件嵌入一些自定义功能区 UI 组件。

控件显示得很好,但我无法将 XML 中描述的 onAction 事件与模板中定义的任何宏链接起来。我认为方法签名是正确的,但我必须在 XML 中错误地引用它们。我做错了什么?

这是 XML:

<mso:customUI xmlns:x2="http://schemas.microsoft.com/office/2009/07/customui/macro" xmlns:x1="DPOfcX.DocumentRibbon" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
    <mso:ribbon>
        <mso:tabs>
            <mso:tab idQ="mso:TabHome">
                <mso:group id="TestGroup" label="TestGroup" autoScale="true">
                    <mso:button onAction="SendAsEmail.SendAsEmailRibbon" idQ="x2:TestSendAsEmail" label="Send As Email" imageMso="ListMacros" visible="true"/>
                    <mso:button onAction="SendAsEmail.ShowFormRibbon" idQ="x2:TestShowForm" label="Enter Letter Data" imageMso="ListMacros" visible="true"/>
                </mso:group>
            </mso:tab>
        </mso:tabs>
    </mso:ribbon>
</mso:customUI>

这是SendAsEmail模块中的方法签名:

Sub ShowFormRibbon(IControl As IRibbonControl)

End Sub

Sub SendAsEmailRibbon(IControl As IRibbonControl)

End Sub

【问题讨论】:

    标签: vba ms-word ribbon office-2010


    【解决方案1】:

    问题在于button 标记中的idQ 属性。我最初是从 UI 导出中获取这些的。一旦我将它们更改为id,按钮事件就起作用了!

    【讨论】:

      【解决方案2】:

      您不需要引用该模块。只需从您的两个onAction 中删除SendAsEmail.

      【讨论】:

      • 我试了一下。无论有没有前导“SendAsEmail”,都不会调用回调函数。
      最近更新 更多