Shapes對象是指定工作表上的所有Shape對象的集合。
- 使用Shapes屬性可返回Shapes集合
Worksheets(1).Shapes.SelectAll
' ↑ 選定工作表一上的所有形狀。
- 使用Shapes(index)可返回一個Shape對象。index是形狀的名稱或索引號。
Worksheets(1).Shapes(1).Fill.PresetGradient msoGradientHorizontal, 1, msoGradientBrass
' ↑ 設置工作表一上形狀一的預設陰影的填充。
- 使用Shapes.Range(Index)可返回一個ShapesRange集合,該集合代表Shapes集合的一個子集。index是形狀的名稱或索引號。
Worksheets(1).Shapes.Range(Array(1, 3)).Fill.Patterned msoPatternHorizontalBrick
' ↑ 設置工作表一上形狀一和形狀三的填充圖案。
- 形狀名稱和代碼名稱:形狀名稱是在工作表中選定該控件時名稱框中顯示的名稱;代碼名稱時在VBA界面屬性窗口中的名稱。新增添加控件時形狀名稱和代碼名稱是一致的默認名稱(例如ChechBox1),但后續更改一個的話、另一個不會自動同步改變。在事件過程中必須使用代碼名稱,在選擇控件時必須使用形狀名稱。
Shape對象代表繪圖層中的對象。例如自選圖形、任意多邊形、OLE對象或圖片。
- 使用Selection.ShapeRange(index)可返回選定區域中的形狀的Shape對象。
Worksheets(1).Shapes(1).Flip msoFlipHorizontal
' ↑ 將工作表一上的形狀一進行水平翻轉。
Worksheets(1).Shapes("Rectangle 1").Flip msoFlipHorizontal
' ↑ 將工作表一上的名為“Rectangle 1”的形狀進行水平翻轉。
ActiveWindow.Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
' ↑ 設置活動窗口內選定區域中的第一個形狀的填充格式,假定至少選定了一個形狀。
- 使用Name屬性可以返回或設置形狀的名稱。操作中發現可以給多個形狀起相同的名字,后續通過名字選擇和操作的時候只會針對第一個命名的那個形狀。
With Worksheets(1).Shapes.AddShape(msoShapeRectangle, 144, 144, 72, 72)
' ↑ 在工作表一中添加一個矩形
.Name = "Red Square"' ↑ 將其命名為“Red Squre”
.Fill.ForeColor.RGB = RGB(255, 0, 0)' ↑ 為其設置前景色
.Line.DashStyle = msoLineDashDot' ↑ 為其設置線條樣式
End With