【问题标题】:Passing parameter to VBA Macro将参数传递给 VBA 宏
【发布时间】:2015-10-19 00:14:40
【问题描述】:

我试图在双击 Visio 形状时运行宏。

我想将 shape 对象传递给 VBA 宏,以便我可以根据 Shape 对象的 id 在宏中执行某些操作。

是否可以将参数传递给 VBA 宏。如果是,请告诉我怎么做?

谢谢。

【问题讨论】:

    标签: vba parameters visio


    【解决方案1】:

    您可以将宏作为 EventDblClick 事件放在要观看的形状上。为此,您可以使用 CallThis 函数 (http://msdn.microsoft.com/en-us/library/aa212649(office.11).aspx) 在每次双击形状时调用宏。

    不过,这需要您修改要查看的每个形状的 shapesheet。如果您为要观看的形状提供母版,那应该没什么大不了的,但否则您必须编写代码将事件添加到您想要观看的每个形状中(尽管您可以在添加形状时使用文档上的 Document_ShapeAdded 事件将您的事件添加到 shapesheet)

    【讨论】:

      【解决方案2】:

      当您单击一个对象时,Selection 会发生变化。您可以在宏中使用 Selection 对象来引用当前选定的对象。

      我不确定是否可以通过双击运行宏,但我的 VBA 体验并非来自 Visio。随着谷歌搜索的出现,这似乎是可能的。如果你把它作为一个按钮放在命令栏上,即使在上下文菜单中也多花点力气,无论如何你都会被限制在一个没有参数的 Sub 过程中。

      【讨论】:

        猜你喜欢
        • 2019-10-29
        • 2018-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多