VBA Word自定义功能区不影响宏



我用VBA写了一些子程序,用Word做一些我想做的事情。它按预期工作。但是,当我使用Office RibbonX编辑器为其创建自定义功能区并生成回调时,按下相关按钮时不会发生任何事情。以下是ribbon的xml模式:


<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false" >
<tabs>
<tab id="Ribbon1" label="Custom Ribbon">
<group id="Group_1" label="Common" autoScale="true">
<button id="btn1" label="DoThis" imageMso="AppointmentColor10" onAction="RibbonControl.DoThis" visible="true"/>
<button id="btn2" label="DoThis1" imageMso="BlackAndWhiteWhite" onAction="RibbonControl.DoThis1" visible="true"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

回调是这样生成的:

'Callback for btn1 onAction
Sub DoThis(control As IRibbonControl)
End Sub
'Callback for btn2 onAction
Sub DoThis1(control As IRibbonControl)
End Sub

我尝试过对>onAction<属性,但在出现VBA错误和按钮不工作之间,这是我陷入困境的地方。

我很感激任何关于如何解决它的提示。

在我工作的Ribbon XML中,我没有使用模块名称,只是直接调用方法。因此,您的XML代码应该如下所示:

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false" >
<tabs>
<tab id="Ribbon1" label="Custom Ribbon">
<group id="Group_1" label="Common" autoScale="true">
<button id="btn1" label="DoThis" imageMso="AppointmentColor10" onAction="DoThis" visible="true"/>
<button id="btn2" label="DoThis1" imageMso="BlackAndWhiteWhite" onAction="DoThis1" visible="true"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

要想从功能区访问这些方法,必须满足以下条件:

  1. 代码必须存在于常规模块中。不是类模块、窗体或任何其他对象。制作一个名为";RibbonActions";或者什么的,然后把它们都放在那里。

  2. 方法必须是公共的,您的子类是隐式公共的,所以这应该有效,但我喜欢添加Public关键字,只是为了明确它

  3. 签名必须与事件相匹配,而您的签名似乎符合模式。

最新更新