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