Метод Shapes.Range (Project)
Возвращает объект ShapeRange , представляющий подмножество фигур в коллекции Shapes .
Синтаксис
expression. Диапазон (индекс)
выражение: переменная, представляющая объект Shapes.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Индекс; | Обязательный | Variant | Указывает одну или несколько фигур, которые будут включены в диапазон. Может быть целым числом для индекса фигуры, строкой для имени фигуры или массивом, содержащим целые числа или строки. |
Индекс; | Обязательный | Variant | |
Имя | Обязательный или необязательный | Тип данных | Описание |
Возвращаемое значение
ShapeRange
Диапазон фигур, заданных параметром Index .
Замечания
Примечание.
Большинство операций, которые можно выполнить с объектом Shape , можно также выполнить с помощью объекта ShapeRange , содержащего одну фигуру. При выполнении некоторых операций с объектом ShapeRange , содержащим несколько фигур, возникает ошибка.
Хотя свойство Range можно использовать для возврата любого количества фигур в отчете, проще использовать свойство Value по умолчанию для возврата одной фигуры в коллекции. Например, проще, Shapes(1)
чем Shapes.Range(1)
.
Чтобы указать массив целых чисел или строк для параметра Index , можно использовать функцию Array . Например, следующий макрос выбирает две фигуры, указанные по имени.
Sub SelectShapeRange()
Dim arShapes() As Variant
Dim oShapeRange As ShapeRange
arShapes = Array("TextBox 4", "TextBox 5")
Set oShapeRange = ActiveProject.Reports("Table Tests").Shapes.Range(arShapes)
oShapeRange.Select
End Sub
Пример
При создании отчета с двумя текстовыми полями, как в предыдущем коде, следующий макрос выделяет текстовые поля по номеру индекса, а затем добавляет тень к каждому из них.
Sub AddShadow2Shapes()
Dim oReports As Reports
Dim oReport As Report
Dim oShapeRange As ShapeRange
Dim reportName As String
Dim arShapes() As Variant
arShapes = Array(3, 4)
reportName = "Table Tests"
Set oReports = ActiveProject.Reports
If (oReports.IsPresent(reportName)) Then
' Make the report the active view.
oReports(reportName).Apply
Set oReport = oReports(reportName)
Set oShapeRange = oReport.Shapes.Range(arShapes)
oShapeRange.Select
oShapeRange.Shadow.Type = msoShadow1
End If
End Sub
См. также
Объект ShapeRangeОбъекта Фигуры
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.