共用方式為


Excel (的 GroupShapes.Range 屬性)

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

語法

運算式範圍 (索引)

表達 代表 GroupShapes 物件的 變數。

參數

名稱 必要/選用 資料類型 描述
Index 必要 Variant 要包含在範圍中的個別圖案。 可以是指定圖案索引編號的整數、指定圖案名稱的字串,或者是整數陣列或字串陣列。

註解

雖然您可以使用 Range 屬性傳回任意數目的圖案,但如果您只想要傳回集合的單一成員,則使用 Item 方法會比較簡單。 例如, Shapes(1)是比 Shapes.Range(1)簡單。

範例

這個範例會設定 myDocument 上第一個圖案及第三個圖案的填滿圖樣。

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

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

Dim arShapes() As Variant 
Dim objRange As Object 
arShapes = Array("Oval 4", "Rectangle 5") 
Set objRange = ActiveSheet.Shapes.Range(arShapes) 
 

在 Microsoft Excel 中,無法使用此屬性傳回包含工作表上所有 Shape 物件的 ShapeRange 物件。 請改用下列程式碼。

Worksheets(1).Shapes.SelectAll ' select all shapes 
set sr = Selection.ShapeRange ' create ShapeRange 
 

本範例會設定 myDocument上名為 Oval 4 和 Rectangle 5 之圖案的填滿圖樣。

Dim arShapes() As Variant 
Dim objRange As Object 
Set myDocument = Worksheets(1) 
arShapes = Array("Oval 4", "Rectangle 5") 
Set objRange = myDocument.Shapes.Range(arShapes) 
objRange.Fill.Patterned msoPatternHorizontalBrick

這個範例會設定 myDocument 上第一個圖案的填滿圖樣。

Set myDocument = Worksheets(1) 
Set myRange = myDocument.Shapes.Range(1) 
myRange.Fill.Patterned msoPatternHorizontalBrick

這個範例會先建立包含 myDocument 上所有快取圖案的陣列,並用該陣列定義圖案範圍,然後將該範圍內的所有圖案水平均分。

Set myDocument = Worksheets(1) 
With myDocument.Shapes 
 numShapes = .Count 
 If numShapes > 1 Then 
 numAutoShapes = 1 
 ReDim autoShpArray(1 To numShapes) 
 For i = 1 To numShapes 
 If .Item(i).Type = msoAutoShape Then 
 autoShpArray(numAutoShapes) = .Item(i).Name 
 numAutoShapes = numAutoShapes + 1 
 End If 
 Next 
 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 支援與意見反應