Shape.ConnectedShapes 方法 (Visio)
返回包含已连接到该形状的形状的标识符 (ID) 的数组。
语法
expression。
ConnectedShapes
( _Flags_
, _CategoryFilter_
)
expression 一个代表 Shape 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Flags | 必需 | VisConnectedShapesFlags | 按照连接线的方向性筛选返回的形状 ID 的数组。 有关可能的值,请参阅“说明”。 |
CategoryFilter | 必需 | String | 通过将其限制为符合指定类别的形状的 ID 来筛选返回的形状 ID 的数组。 |
返回值
长 ()
备注
Flags 参数必须为下列 VisConnectedShapesFlags 常量之一。
常量 | 值 | 说明 |
---|---|---|
visConnectedShapesAllNodes | 0 | 返回与传入和传出连接相关的形状的 ID。 |
visConnectedShapesIncomingNodes | 1 | 返回与传入连接相关的形状的 ID。 |
visConnectedShapesOutgoingNodes | 2 | 返回与传出连接相关的形状的 ID。 |
类别是用户定义的字符串,可用来对形状进行分类,从而限制容器中的成员资格。 可以在形状 ShapeSheet 的 User.msvShapeCategories 单元格中定义类别。 可以通过用分号分隔类别来为形状定义多个类别。
如果源对象是一维形状或主控形状的一部分, 则 ConnectedShapes 方法将返回“源无效”错误。
如果没有符合条件的已连接形状,ConnectedShapes 方法会返回空的数组。
示例
以下Visual Basic for Applications (VBA) 宏演示如何使用 ConnectedShapes 方法查找所选形状传出连接的另一端的所有形状的名称。
示例代码由:Fred Diggs 提供
Public Sub ConnectedShapes_Outgoing_Example()
' Get the shapes that are connected to the selected shape
' by outgoing connectors.
Dim vsoShape As Visio.Shape
Dim lngShapeIDs() As Long
Dim intCount As Integer
If ActiveWindow.Selection.Count = 0 Then
MsgBox ("Please select a shape that has connections")
Exit Sub
Else
Set vsoShape = ActiveWindow.Selection(1)
End If
lngShapeIDs = vsoShape.ConnectedShapes _
(visConnectedShapesOutgoingNodes, "")
Debug.Print "Shapes at the end of outgoing connectors:"
For intCount = 0 To UBound(lngShapeIDs)
Debug.Print ActivePage.Shapes(lngShapeIDs(intCount)).Name
Next
End Sub
以下 VBA 宏演示如何使用 ConnectedShapes 方法查找所选形状的传入连接另一端的所有形状的名称。
示例代码由:Fred Diggs 提供
Public Sub ConnectedShapes_Incoming_Example()
' Get the shapes that are at the other end of
' incoming connections to a selected shape
Dim vsoShape As Visio.Shape
Dim lngShapeIDs() As Long
Dim intCount As Integer
If ActiveWindow.Selection.Count = 0 Then
MsgBox ("Please select a shape that has connections.")
Exit Sub
Else
Set vsoShape = ActiveWindow.Selection(1)
End If
lngShapeIDs = vsoShape.ConnectedShapes _
(visConnectedShapesIncomingNodes, "")
Debug.Print "Shapes that are at the other end of incoming connections:"
For intCount = 0 To UBound(lngShapeIDs)
Debug.Print ActivePage.Shapes(lngShapeIDs(intCount)).Name
Next
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。