Excel) (圖形物件

指定工作表上所有 Shape 物件的集合。

註解

每一個 Shape 物件都代表繪圖圖層中的物件,例如快取圖案、手繪多邊形、OLE 物件或圖片。

注意事項

如果您想要使用文件上的圖形子集,例如只對文件上的快取圖案或只對選取的圖形執行某些動作,您必須建構包含您想要處理之圖形的 ShapeRange 集合。

範例

使用 Worksheet 物件的 Shapes 屬性傳回 Shapes 集合。 下列範例會選取 myDocument 上的所有圖形。

注意事項

如果您想要同時執行某些 (動作,例如刪除或設定工作表上所有圖形的屬性) ,請選取所有圖形,然後使用選取範圍上的 ShapeRange 屬性,建立包含工作表上所有圖形的 ShapeRange 物件,然後將適當的屬性或方法套用至 ShapeRange 物件。

Set myDocument = Worksheets(1) 
myDocument.Shapes.SelectAll

使用 圖形 (索引) ,其中 index 是圖形的名稱或索引號碼,以傳回單一 圖形 物件。 下列範例會將 myDocument 上第一個圖案的填滿格式設定為預設的網底。

Set myDocument = Worksheets(1) 
myDocument.Shapes(1).Fill.PresetGradient _ 
 msoGradientHorizontal, 1, msoGradientBrass

使用 Range (索引) ,其中 index 是圖形的名稱或索引號碼,或圖形名稱或索引號碼的陣列,以傳回代表 Shapes 集合子集的 ShapeRange 集合。 下列範例會設定 myDocument 上第一個及第三個圖案的填滿圖樣。

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

ActiveX 控制項在工作表上有兩個名稱:一個是包含該控制項的圖案名稱,當檢視工作表時,您可以在 [名稱] 方塊中看到,另一個是控制項的程式碼名稱,您可以在 [屬性] 視窗中 (Name) 右邊的儲存格裡看到。 當您第一次新增一個控制項到工作表中時,該圖案名稱和程式碼名稱是相符合的。 不過,如果您變更圖形名稱或代碼名稱,卻不會自動配合對方。

在控制項的事件程序中,使用的是控制項的程式碼名稱。 不過,當您從 Shapes 或 OLEObjects 集合中傳回工作表的控制項時,必須使用圖案名稱,而不能使用程式碼名稱,以便根據名稱來參照控制項。 例如,假設您新增一個核取方塊到工作表中,而且預設圖案名稱和預設程式碼名稱都是 CheckBox1。 這時如果您藉由在 [屬性] 視窗的 (Name) 旁邊輸入 chkFinished 來變更控制項的程式碼名稱,則必須在事件程序名稱中使用 chkFinished,但是仍然必須使用 CheckBox1 才能從 Shapes 或 OLEObject 集合中傳回控制項,如下列範例所示。

Private Sub chkFinished_Click() 
 ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1 
End Sub

方法

屬性

另請參閱

支援和意見反應

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