首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Visio vba将动态连接器连接到连接点

Visio vba将动态连接器连接到连接点
EN

Stack Overflow用户
提问于 2019-03-04 23:21:28
回答 1查看 1.5K关注 0票数 2

我在连接一个链接的动态连接器时遇到了一些问题,它实际上连接到一个预定义的连接点,而不仅仅是连接到顶部。

我的主人在左边有一些文本框,在右边有一些。当我自动连接到这些文本框时,除了第一个和最后一个之外,它们都连接得很好。而不是像其他人那样连接到侧面,它们连接到盒子中间的顶部和底部,这会破坏视觉效果。即使在边上定义了连接点。

我一直在考虑使用GlueTo手动连接到连接点,但我不知道如何访问连接点。

代码语言:javascript
复制
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

因此,我的实际问题是如何连接到连接点,而不是形状本身?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-04 23:43:51

您可以粘合连接器的.Cells("BeginX").Cells("EndX")

连接到最近的形状连接符:

  1. Shape.Cells("PinX")
  2. 或选定的连接符:Shape.CellsSRC(visSectionConnectionPts, row, column)

  • 可用连接点的数量取决于您的形状类型
  • 如果您单击该形状并通过鼠标右键单击打开其ShapeSheet,您将找到一个"Connection Points“部分。此表的每一行代表一个连接点-单击表中的行,查看在图形中选择了哪一个连接点。

使用从0开始的行号表示CellSRC

列号不相关,可以是0或1= visCnnctX或visCnnctY

  • Alternatively仅捕获与宏录制器的手动连接

并在代码中搜索例如。

CellSRC(7, 0, 0) 7= visSectionConnectionPts,0=第一个连接点,0

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54986245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档