2015-09-08 72 views
1

如何将连接点添加到形状?VBA将连接点添加到形状

我开始这个项目,在页面中添加常规矩形,并使用AutoConnect连接它们,因为每个连接都在矩形上创建了一个新的连接点,所以它们完美地工作。当我切换到圆角矩形时,没有创建新的连接点,并且连接器最终彼此重叠。

我添加圆角矩形像这样...

 Application.ActiveWindow.Page.Drop Application.Documents.Item("BASIC_U.VSS").Masters.ItemU("Rounded rectangle"), 0, 0 

我自动连接这样的...

 Dim vsoConnectorShape As Visio.Shape 
     Set vsoConnectorShape = Visio.ActivePage.Shapes("Dynamic connector") 
     vsoConnectorShape.CellsU("LineColor").Formula = "rgb(" + CStr(red) + ", " + CStr(green) + ", " + CStr(blue) + ")" 

     shp1.AutoConnect shp2, visAutoConnectDirNone, vsoConnectorShape 

回答

2

您可以通过添加行形状的连接点部分添加连接点(visSectionConnectionPts) 。 代码是这样:

Dim NewRow as Integer 
NewRow = shp1.AddRow(visSectionConnectionPts , visRowLast, visTagDefault) 
shp1.CellsSRC(visSectionConnectionPts, NewRow, visX).formula = "Width*0.5" 
shp1.CellsSRC(visSectionConnectionPts, NewRow, visY).formula = "Height*0.5" 

该代码添加一个新的连接点SHP1,并设置在形状中心的点。