连接链接的动态连接器时遇到了一些麻烦,该连接器实际上连接到预定义的连接点,而不仅仅是连接到顶部。
我的主人的左侧有一些文本框,右侧有一些文本框。当我自动连接到这些文本框时,除了第一个和最后一个以外,它们都连接正常。他们没有连接到侧面,而是连接到盒子中间的顶部和底部,这破坏了视觉效果。即使在侧面定义了一个连接点。
我一直在考虑使用GlueTo手动连接到连接点,但是我不知道如何处理连接点。
Set vsoConnectorShape = ActiveDocument.Masters.ItemU("Dynamic connector")
Set BoxShape = ActivePage.Shapes(i)
Set DevShape = ActivePage.Shapes(j)
NewRow = DevShape.AddRow(visSectionConnectionPts, visRowLast, visTagDefault)
DevShape.CellsSRC(visSectionConnectionPts, NewRow, visX).Formula = "Width*0"
DevShape.CellsSRC(visSectionConnectionPts, NewRow, visY).Formula = "Height*0.5"
DevShape.AutoConnect BoxShape, visAutoConnectDirLeft, vsoConnectorShape
所以我的实际问题是如何连接到连接点而不是形状本身?
答案 0 :(得分:1)
您可以粘贴连接器的.Cells("BeginX")
或.Cells("EndX")
Shape.Cells("PinX")
Shape.CellsSRC(visSectionConnectionPts, row, column)
如果单击该形状并通过右键单击打开其ShapeSheet,则会找到“连接点”部分。该表的每一行代表一个连接点-单击表中的行,查看在图形中选择了哪个。
对CellSRC
使用以0开头的行号
列号无关,可以是0或1 = visCnnctX或visCnnctY
或者只是与宏记录器建立手动连接
并在代码中搜索e。 g。
CellSRC(7, 0, 0)
7 = visSectionConnectionPts,0 =第一个连接点,0
Dim myConnector As Visio.Shape
' drop it somewhere
Set myConnector = ActiveWindow.Page.Drop(Application.ConnectorToolDataObject, 1, 10)
' connect it to the nearest connection point of a shape (varies if you drag)
myConnector.Cells("BeginX").GlueTo BoxShape.Cells("PinX")
' connect it a fixed connection point (example if shape has 4 points)
myconnector.Cells("BeginX").GlueTo _
Boxshape.CellsSRC(visSectionConnectionPts, 0, 0) ' left
' .CellsSRC(visSectionConnectionPts, 1, 0) ' right
' .CellsSRC(visSectionConnectionPts, 2, 0) ' top
' .CellsSRC(visSectionConnectionPts, 3, 0) ' bottom