如何在microsoft visio中创建可通过普通界面选择的特定形状?我正在寻找像ActivePage.addShape(type: person, 100,100, 50,50)
对于初学者来说,msdn和visio帮助文档有点高级,但是必须手动添加形状,然后通过vba给它一个id,可以理解并再次使用它。或者您是否必须创建一个全局子/类,然后引用您为其命名的对象。
答案 0 :(得分:2)
您需要的功能称为Drop。第一个参数是dropObject,它可以是对另一个形状,当前选定形状或Visio模板中的Master对象的引用。
您可以尝试一下,看看它是如何工作的:
Dim ShpObj As Visio.Shape
Set ShpObj = ActivePage.Drop(ActiveWindow.Selection, 100, 50)
因此,使用ActiveWindow.Selection意味着Visio将复制所选的形状并将其置于100,50。
要获得Master,您需要先找到包含master的模板文档。这是一个例子,在Basic Shapes框图模板中放置一个Triangle形状:
Dim ShpObj As Visio.Shape
Set ShpObj = ActivePage.Drop(Application.Documents("BASIC_U.VSS").Masters("Triangle"))
将Drop函数的结果设置为ShpObj意味着您可以稍后在代码中引用它。否则,Page类中的Shapes集合包含页面中的所有形状。
希望在Visio VBA编程中为您提供良好的开端。