【问题标题】:Calling a VBA Macro with Parameters from Backstage从后台调用带有参数的 VBA 宏
【发布时间】:2011-03-03 16:58:30
【问题描述】:

this question 中,我在调试带有我想在 Office 2010 后台使用的参数的宏时遇到问题。

该问题的答案解释了为什么我无法首次使用宏,但我仍然无法调用宏。

通过单击 Backstage 选项卡中的按钮调用宏。有多个按钮调用宏,每个按钮都用不同的参数调用它。调用示例如下:

 <button id="bb1" label="MFLLP Portrait" style="large" onAction="NewDocs (Blank, Portrait.dot)" imageMso="FileSaveAsWordDocx" />

宏在信任中心被设置为完全启用,但是当我点击任何按钮时,我都会收到消息

由于您的宏安全设置,找不到或已禁用宏

我看不到任何其他设置

【问题讨论】:

    标签: office-2010


    【解决方案1】:

    OnAction 从未在任何版本的 Word 中使用参数。大多数人的解决方法是为控件分配一个标签,然后从onAction 例程中获取该标签,根据需要进行解析。

    标签将是文本的,因此您只需要一些良好的解析逻辑,例如,如果您的标签中有“2,True,Blue”,那么您将拆分字符串,数组的第一部分将是一组整数值,下一个是布尔值,下一个可以是颜色或字符串值”。

    这对@#$ 来说是一个彻底的痛苦——但这正是我们所有 VBA 开发人员多年来一直在做的传递参数的事情。

    【讨论】:

    • 如果是这种情况,那就太疯狂了。我想另一种选择是为每个按钮设置一个特定的宏,然后使用适当的参数调用 exe(或将它们传递给“主”宏)
    • @Dan Kelly:确实如此。我一开始就是这样做的。随着参数需求的增长,我最终得到了解析后的.Tag 解决方案,但是如果您只有几个不同的参数化例程,那么在单独的例程中管理它们应该足够简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 2019-03-24
    • 2011-12-22
    • 2013-09-12
    • 1970-01-01
    相关资源
    最近更新 更多