当我双击Visio形状时,我正在尝试运行宏。
我想将形状对象传递给VBA宏,以便我可以根据Shape对象的id在宏中执行某些操作。
是否可以将参数传递给VBA宏。如果是,请告诉我怎么做?
感谢。
答案 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事件,以便在添加形状时将事件添加到形状表中。