2008-11-11 125 views
2

我试图在双击Visio形状时运行宏。将参数传递给VBA宏

我想将形状对象传递给VBA宏,以便我可以在宏中执行一些操作,具体取决于Shape对象的ID。

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

谢谢。

回答

1

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

虽然这需要您修改您想要观察的每个形状的形状图。如果您要为想要观看的形状提供主图形,则不应该是一个大问题,否则,您必须编写代码来将该事件添加到要观看的每个形状(尽管您可以使用文档上的Document_ShapeAdded事件将事件添加到形状表(每当添加形状时))

1

当您单击一个对象时,Selection会更改。您可以使用宏中的Selection对象来引用当前选定的对象。

我不确定宏是否可以双击运行,但我的VBA体验不是来自Visio。随着一些谷歌搜索出现,这似乎有可能。如果您将它作为Button放置在CommandBar上,即使在上下文菜单中也需要付出更多的努力,在任何情况下,您都将被限制为不带参数的Sub过程。