本文介绍了Visio 2007和VBA.使用动态连接器连接两个形状的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的目标是使用弯曲连接器"连接2个形状.我有两个函数可以创建2个不同的形状.

My goal is to connect 2 shapes with "Curved Connector". I have two functions that create 2 different shaped.

我录制了连接这两种形状的宏.

I recorded macro that connects these 2 shapes.

   Application.ActiveWindow.Page.Drop Application.Documents.Item("C:\ MyVisio.vsd").Masters.ItemU(动态连接器"),0#,0#
将VisioCell1变暗为Visio.Cell
   将VisioCell2变暗为Visio.Cell
   设置vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(79).CellsU("BeginX")
设置vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(3).CellsSRC(1,1,0)
vsoCell1.GlueTo vsoCell2
   设置vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(79).CellsU("EndX")
设置vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(4).CellsSRC(1,1,0)
vsoCell1.GlueTo vsoCell2
    Application.EndUndoScope UndoScopeID1,真

    Application.ActiveWindow.Page.Drop Application.Documents.Item("C:\MyVisio.vsd").Masters.ItemU("Dynamic connector"), 0#, 0#
    Dim vsoCell1 As Visio.Cell
    Dim vsoCell2 As Visio.Cell
    Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(79).CellsU("BeginX")
    Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(3).CellsSRC(1, 1, 0)
    vsoCell1.GlueTo vsoCell2
    Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(79).CellsU("EndX")
    Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(4).CellsSRC(1, 1, 0)
    vsoCell1.GlueTo vsoCell2
    Application.EndUndoScope UndoScopeID1, True

问题:

1)项目ID(例如79、4等)将是动态的,因为我将生成可变数量的形状.

1) Item id such as 79, 4, etc will be dynamic, because I will generate variable number of shapes.

是否可以为我创建的每个对象设置标识符?

Is there is a way to set identifier to each object I create?

2)假设存在标识符,如何根据名称/ID找到该形状?

2) Let's say identifier exists, how do I find that shape based on name/ID?


谢谢

保罗

 

推荐答案

kaymaf


这篇关于Visio 2007和VBA.使用动态连接器连接两个形状的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 14:11