Shapes.Range 方法 (PowerPoint)

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

语法

表达式范围 (索引)

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

参数

名称 必需/可选 数据类型 说明
Index 可选 Variant 要包含在范围中的单个形状。 可以是指定形状索引号的 整数 、 指定形状的名称的 字符串 或一个包含整数或字符串的数组。 如果省略此参数,则 Range 方法将返回指定集合中的所有对象。

返回值

ShapeRange

备注

虽然可以使用 Range 方法返回任意数目的形状或幻灯片,但它是易于使用 Item 方法,如果您只想返回集合的单个成员。 例如, Shapes(1)Shapes.Range(1)简单,并且 Slides(2)Slides.Range(2)简单。

若要指定 索引 的整数或字符串的数组,可以使用 Array 函数。 例如,下列指令返回由名称指定的两个形状。

Dim myArray() As Variant, myRange As Object myArray = Array("Oval 4", "Rectangle 5") Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)

示例

此示例设置 myDocument 中第一个形状和第三个形状的填充图案。

Set myDocument = ActivePresentation.Slides(1)

myDocument.Shapes.Range(Array(1, 3)).Fill _
    .Patterned msoPatternHorizontalBrick

本示例设置第一张幻灯片中名为 Oval 4 和 Rectangle 5 的形状的填充图案。

Dim myArray() As Variant, myRange As Object

myArray = Array("Oval 4", "Rectangle 5")

Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)

myRange.Fill.Patterned msoPatternHorizontalBrick

本示例设置第一张幻灯片中所有形状的填充图案。

ActivePresentation.Slides(1).Shapes.Range.Fill _
    .Patterned Pattern:=msoPatternHorizontalBrick

本示例设置第一张幻灯片中第一个形状的填充图案。

Set myDocument = ActivePresentation.Slides(1)

Set myRange = myDocument.Shapes.Range(1)

myRange.Fill.Patterned msoPatternHorizontalBrick

本示例创建一个包含第一张幻灯片中所有自选图形的数组,并用它定义一个形状范围,然后在该范围内水平地分布所有这些形状。

With myDocument.Shapes

    numShapes = .Count



    'Continues if there are shapes on the slide

    If numShapes > 1 Then

        numAutoShapes = 0

        ReDim autoShpArray(1 To numShapes)

        For i = 1 To numShapes



            'Counts the number of AutoShapes on the Slide

            If .Item(i).Type = msoAutoShape Then

                numAutoShapes = numAutoShapes + 1

                autoShpArray(numAutoShapes) = .Item(i).Name

            End If

        Next



        'Adds AutoShapes to ShapeRange

        If numAutoShapes > 1 Then

            ReDim Preserve autoShpArray(1 To numAutoShapes)

            Set asRange = .Range(autoShpArray)

            asRange.Distribute msoDistributeHorizontally, False

        End If

    End If

End With


另请参阅

Shapes 对象

支持和反馈

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