Метод Shape.ConnectedShapes (Visio)

Возвращает массив, содержащий идентификаторы фигур, подключенных к фигуре.

Синтаксис

выражение. ConnectedShapes( _Flags_ , _CategoryFilter_ )

Выражение Переменная, представляющая объект Shape .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Flags Обязательный VisConnectedShapesFlags Фильтрует массив возвращенных идентификаторов фигур по направленности соединителей. Возможные значения см. в разделе Примечания.
CategoryFilter Обязательный String Фильтрует массив возвращенных идентификаторов фигур, ограничивая его идентификаторами фигур, которые соответствуют указанной категории.

Возвращаемое значение

Long()

Замечания

Значение Flags должно быть одной из следующих констант VisConnectedShapesFlags .

Константа Значение Описание
visConnectedShapesAllNodes 0 Возвращает идентификаторы фигур, связанных как с входящими, так и исходящими подключениями.
visConnectedShapesIncomingNodes 1 Возвращает идентификаторы фигур, связанных с входящими подключениями.
visConnectedShapesOutgoingNodes 2 Возвращает идентификаторы фигур, связанных с исходящими подключениями.

Категории — это определяемые пользователем строки, которые можно использовать для классификации фигур и, таким образом, для ограничения членства в контейнере. Категории можно определить в ячейке User.msvShapeCategories в таблице фигур для фигуры. Для фигуры можно определить несколько категорий, разделив категории с запятыми.

Если исходный объект является 1D-фигурой или частью главного объекта, метод ConnectedShapes возвращает ошибку Invalid Source.

Если соответствующих связанных фигур не существует, метод ConnectedShapes возвращает пустой массив.

Примеры

В следующем макросе Visual Basic для приложений (VBA) показано, как использовать метод ConnectedShapes для поиска имен всех фигур на другом конце исходящих подключений из выбранной фигуры.

Пример кода, предоставленный:Значок участника сообществаФред Диггс

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 для поиска имен всех фигур на другом конце входящих подключений к выбранной фигуре.

Пример кода, предоставленный:Значок участника сообществаФред Диггс

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 и обратная связь.