Visio VBA获取粘贴的形状
我有一个宏,它在Visio 2003和2010之间的工作方式不同。我正在将一个形状复制粘贴到页面上,并尝试获取指向粘贴形状的指针。在2003年,该形状只是页面上的最后一个形状(Visio VBA获取粘贴的形状,vba,visio,Vba,Visio,我有一个宏,它在Visio 2003和2010之间的工作方式不同。我正在将一个形状复制粘贴到页面上,并尝试获取指向粘贴形状的指针。在2003年,该形状只是页面上的最后一个形状(set ShpObj=PagObj.Shapes(PagObj.Shapes.Count))。然而,在2010年,粘贴的形状似乎并不总是设置为页面上的最后一个形状 目前,我正在粘贴操作之前记录页面上的所有唯一形状,然后在粘贴操作之后识别新形状 我尝试监视应用程序Shapeaded事件,但它似乎没有触发粘贴操作 有没有其他方
set ShpObj=PagObj.Shapes(PagObj.Shapes.Count)
)。然而,在2010年,粘贴的形状似乎并不总是设置为页面上的最后一个形状
目前,我正在粘贴操作之前记录页面上的所有唯一形状,然后在粘贴操作之后识别新形状
我尝试监视应用程序Shapeaded事件,但它似乎没有触发粘贴操作
有没有其他方法可以让我提取粘贴的形状?您是如何进行复制的?Visio 2010获得了更多的枚举,从而在可能影响收集顺序的条件或位置、容器和调用行为方面对粘贴操作进行了更大的控制:
遗憾的是,粘贴没有返回选择,但是您是否查看了形状。复制和选择。复制分别返回形状和选择对象的形状和选择对象?在粘贴操作之前创建一个新的临时层,并将层的活动单元格设置为true,以利用Visio的层功能。将Active设置为true意味着添加到页面的任何新形状都将添加到此层。然后,当粘贴操作完成后,您可以获得该层上的所有形状。要进行清理,您可以删除临时层而不删除形状。在Visio 2010中,粘贴新粘贴的形状时始终选中它们。因此,在粘贴操作之后,ActiveWindow.Selection或类似操作将获得新粘贴的形状