Shapes.Range 方法 (Project)

返回一个 ShapeRange 对象,该对象代表 Shapes 集合中形状的子集。

语法

表达式范围 (索引)

expression:一个表示 Shapes 对象的变量。

参数

名称 必需/可选 数据类型 说明
Index 必需 Variant 指定要包含在区域中的一个或多个形状。 可以是形状索引号的整数、形状名称的字符串,也可以是包含整数或字符串的数组。
"索引" 必需 Variant
名称 必需/可选 数据类型 说明

返回值

ShapeRange

由 Index 参数指定的形状范围。

备注

注意

[!注释] 与 形状 对象可以执行的大多数操作还可以执行与一个 ShapeRange 对象,该对象包含一个形状。 某些操作,一个 ShapeRange 对象,该对象包含多个形状,在执行时产生错误。

虽然可以使用 Range 属性在报表上返回任意数量的形状,但使用默认 Value 属性在集合中返回单个 Shape 会更简单。 例如, 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

另请参阅

Shapes 对象ShapeRange 对象

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。