2010-02-14 77 views
0

如何在Microsoft Visio中创建可通过常规界面选择的特定形状?我要寻找类似的代码ActivePage.addShape(type: person, 100,100, 50,50)如何引用Visio vba中的形状

在MSDN和Visio帮助文档给人的印象是有点先进的初学者,但它是一个具有手动添加的形状,然后把它通过VBA它可以在一个ID的情况下再次被理解和使用。或者你必须创建一个全局子/类,然后引用你已经给的名字的对象。

+0

您可以记录VBA宏在Visio – denfromufa 2014-02-21 12:41:58

回答

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")) 

设置投递功能的结果ShpObj意味着你可以参考它后面的代码。否则,Page类中有一个Shapes集合,其中包含页面中的所有形状。

希望这会为您在Visio VBA编程中开创一个良好的开端。

+0

我知道前一段时间我问过这个问题,但我觉得有人认为其他任何人都没有试过,我还没有尝试过这个解决方案。 – dbjohn 2011-07-08 13:13:57

相关问题