将参数传递给VBA宏

时间:2008-11-11 06:47:45

标签: vba parameters visio

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

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

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

感谢。

2 个答案:

答案 0 :(得分:1)

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

我不确定是否可以双击运行宏,但我的VBA体验不是来自Visio。随着谷歌搜索的一点点,这似乎有可能。如果你把它作为一个按钮放在CommandBar上,即使在上下文菜单中稍微省力一点,在任何情况下你都会被限制为没有参数的Sub过程。

答案 1 :(得分:1)

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

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