Shape.ConnectedShapes 方法 (Visio)

返回包含已连接到该形状的形状的标识符 (ID) 的数组。

语法

expressionConnectedShapes( _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 支持和反馈,获取有关如何接收支持和提供反馈的指南。