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