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


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