Поделиться через


Свойство Shapes.ItemU (Visio)

Возвращает объект коллекции. Только для чтения.

Синтаксис

выражение. ItemU( _NameUIDOrIndex_ )

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

Параметры

Имя Обязательный или необязательный Тип данных Описание
NameOrIndex Обязательный Variant Содержит универсальное имя, уникальный идентификатор или индекс извлекаемого объекта.

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

Shape

Примечания

Объект можно получить в коллекции Addons, Hyperlinks, Layers, Masters, MasterShortcuts, Pages, Shapes или Styles , передав имя объекта в виде строкового выражения в Variant.

Если вы извлекаете объект Shape по имени, свойство ItemU выполняет поиск всех фигур на странице, содержащей коллекцию Shapes , или в ней содержится образец, в дополнение к фигуре, содержащей коллекцию. Таким образом, объект Shape , возвращаемый свойством ItemU , может быть фигурой, которая не входит в коллекцию Shapes .

Вы также можете передать уникальную строку идентификатора объекта Master или Shape в свойство ItemU . Например:

objRet = vsoShapes.ItemU("{2287DC42-B167-11CE-88E9-0020AFDDD917}")

Если такая строка передается в свойство ItemU коллекции Shapes , выполняется поиск по всем фигурам, содержащимся в коллекции. Фигуры в фигурах группы в содержащей фигуре не выполняются.

Чтобы выполнить поиск по всем фигурам в коллекции, а также фигурам внутри групп и содержащей фигуре коллекции, зафиксировать строку уникального идентификатора звездочкой (*). Например:

objRet = vsoShapes.ItemU("*{2287DC42-B167-11CE-88E9-0020AFDDD917}")

Пример

В этом макросе Microsoft Visual Basic показано, как использовать свойство ItemU коллекции Pages для получения коллекции Shapes . Затем он использует свойство ItemU коллекции Shapes для печати универсальных имен всех фигур на странице 1 в окне Интерпретация.

Чтобы запустить этот макрос, убедитесь, что активный документ содержит фигуры на странице 1.

Public Sub ItemU_Example() 
  
    Dim intCounter As Integer 
    Dim intShapeCount As Integer 
    Dim vsoShapes As Visio.Shapes  
 
    Set vsoShapes = ActiveDocument.Pages.ItemU(1).Shapes  
 
    Debug.Print "Shapes in Document: "; ActiveDocument.Name  
    Debug.Print "          on  Page: "; ActiveDocument.Pages.ItemU(1).Name  
 
    intShapeCount = vsoShapes.Count  
 
    If intShapeCount > 0 Then 
 
        For intCounter = 1 To intShapeCount  
            Debug.Print " "; vsoShapes.ItemU(intCounter).Name  
        Next intCounter 
  
    Else 
 
        Debug.Print " No Shapes On Page"
  
    End If
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.