共用方式為


Shapes.Range 方法 (Publisher)

會傳回 ShapeRange 物件,代表 Shapes 集合中的圖形子集合。

語法

運算式範圍 (索引)

expression 代表 Shapes 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Index 必要 Variant 是要包含在範圍中個別的圖形。 可以是圖案的指定的圖案、 指定,名稱的字串或包含整數或字串陣列的索引數的整數。 如果省略 IndexRange 方法會傳回指定集合中的所有物件。

傳回值

ShapeRange

範例

若要指定 索引 的整數或字串陣列,您可以使用 Array 函數。 例如,下列指令會傳回 name 所指定的兩個圖形。

Dim arrShapes As Variant 
Dim shpRange As ShapeRange 
 
Set arrShapes = Array("Oval 4", "Rectangle 5") 
Set shpRange = ActiveDocument.Pages(1) _ 
 .Shapes.Range(arrShapes)

在這個範例中,會設定使用中出版物上第一個及第三個圖案的填滿圖樣。

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

在這個範例中,會設定第一頁上名為 "Oval 4" 及 "Rectangle 5" 之圖案的填滿圖樣。

Dim arrShapes As Variant 
Dim shpRange As ShapeRange 
 
arrShapes = Array("Oval 4", "Rectangle 5") 
 
Set shpRange = ActiveDocument.Pages(1).Shapes.Range(arrShapes) 
 
shpRange.Fill.Patterned msoPatternHorizontalBrick

在這個範例中,會設定第一頁上所有圖案的填滿圖樣。

ActiveDocument.Pages(1).Shapes _ 
 .Range.Fill.Patterned msoPatternHorizontalBrick

在這個範例中,會設定第一頁上第一個圖案的填滿圖樣。

Dim shpRange As ShapeRange 
 
Set shpRange = ActiveDocument.Pages(1).Shapes.Range(1) 
 
shpRange.Fill.Patterned msoPatternHorizontalBrick

本範例建立一個包含第一頁上所有快取圖案的陣列,使用該陣列定義圖案範圍,然後水平均分該範圍中的所有圖案。

Dim numShapes As Long 
Dim numAutoShapes As Long 
Dim autoShpArray As Variant 
Dim intLoop As Integer 
Dim shpRange As ShapeRange 
 
With ActiveDocument.Pages(1).Shapes 
 
 numShapes = .Count 
 If numShapes > 1 Then 
 
 numAutoShapes = 0 
 ReDim autoShpArray(1 To numShapes) 
 
 For intLoop = 1 To numShapes 
 If .Item(intLoop).Type = msoAutoShape Then 
 numAutoShapes = numAutoShapes + 1 
 autoShpArray(numAutoShapes) = .Item(intLoop).Name 
 End If 
 Next 
 
 If numAutoShapes > 1 Then 
 ReDim Preserve autoShpArray(1 To numAutoShapes) 
 Set shpRange = .Range(autoShpArray) 
 shpRange.Distribute _ 
 DistributeCmd:=msoDistributeHorizontally, _ 
 RelativeTo:=False 
 End If 
 
 End If 
 
End With

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應