2010-02-14 76 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

相關問題