0

如何在 microsoft visio 中创建可通过正常界面选择的特定形状?我正在寻找类似的代码ActivePage.addShape(type: person, 100,100, 50,50)

msdn 和 visio 帮助文档对于初学者来说有点高级,但是否必须手动添加一个形状,然后通过 vba 给它一个可以理解和再次使用的 id。或者您是否必须创建一个全局子/类,然后引用您已命名的对象。

4

1 回答 1

2

您需要的功能称为 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 中编程提供一个良好的开端。

于 2010-02-15T14:53:33.453 回答