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
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。