2

当我双击 Visio 形状时,我正在尝试运行宏。

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

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

谢谢。

4

2 回答 2

1

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

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

于 2008-11-11T07:08:03.167 回答
1

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

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

于 2008-11-11T15:34:40.600 回答