【发布时间】:2015-10-19 00:14:40
【问题描述】:
我试图在双击 Visio 形状时运行宏。
我想将 shape 对象传递给 VBA 宏,以便我可以根据 Shape 对象的 id 在宏中执行某些操作。
是否可以将参数传递给 VBA 宏。如果是,请告诉我怎么做?
谢谢。
【问题讨论】:
标签: vba parameters visio
我试图在双击 Visio 形状时运行宏。
我想将 shape 对象传递给 VBA 宏,以便我可以根据 Shape 对象的 id 在宏中执行某些操作。
是否可以将参数传递给 VBA 宏。如果是,请告诉我怎么做?
谢谢。
【问题讨论】:
标签: vba parameters visio
您可以将宏作为 EventDblClick 事件放在要观看的形状上。为此,您可以使用 CallThis 函数 (http://msdn.microsoft.com/en-us/library/aa212649(office.11).aspx) 在每次双击形状时调用宏。
不过,这需要您修改要查看的每个形状的 shapesheet。如果您为要观看的形状提供母版,那应该没什么大不了的,但否则您必须编写代码将事件添加到您想要观看的每个形状中(尽管您可以在添加形状时使用文档上的 Document_ShapeAdded 事件将您的事件添加到 shapesheet)
【讨论】:
当您单击一个对象时,Selection 会发生变化。您可以在宏中使用 Selection 对象来引用当前选定的对象。
我不确定是否可以通过双击运行宏,但我的 VBA 体验并非来自 Visio。随着谷歌搜索的出现,这似乎是可能的。如果你把它作为一个按钮放在命令栏上,即使在上下文菜单中也多花点力气,无论如何你都会被限制在一个没有参数的 Sub 过程中。
【讨论】: