Excel) (Shapes 对象
指定工作表上所有 Shape 对象的集合。
备注
每个 Shape 对象都代表绘图层中的一个对象,如自选图形、任意多边形、OLE 对象或图片。
注意
如果要处理文档上形状的子集(例如,仅对文档上的自选图形或仅对所选形状执行某些操作),则必须构造包含要处理的形状的 ShapeRange 集合。
示例
使用 Worksheet 对象的 Shapes 属性可返回 Shapes 集合。 以下示例选择 myDocument 上的所有形状。
注意
如果要执行 (操作(如同时删除或设置对工作表上所有形状) 属性),请选择所有形状,然后使用所选内容的 ShapeRange 属性创建包含工作表上所有形状的 ShapeRange 对象,然后将相应的属性或方法应用于 ShapeRange 对象。
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
使用 Shapes (索引) (其中 index 是形状的名称或索引号)返回单个 Shape 对象。 下例设置 myDocument 上形状一的预设阴影的填充。
Set myDocument = Worksheets(1)
myDocument.Shapes(1).Fill.PresetGradient _
msoGradientHorizontal, 1, msoGradientBrass
使用 Range (索引) ,其中 index 是形状的名称或索引号,或者形状名称或索引号数组,可返回一个 ShapeRange 集合,该集合表示 Shapes 集合的子集。 下例设置 myDocument 上形状一和三的填充图案。
Set myDocument = Worksheets(1)
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _
msoPatternHorizontalBrick
工作表上的 ActiveX 控件具有两个名称:包含控件的形状的名称(查看工作表时,可在“名称”框中看到此名称);控件的代码名称(在“属性”窗口的“(名称)”右侧单元格中可看到此名称)。 在您首次向工作表添加控件时,形状名称和代码名称是一致的。 但是,如果您更改这两个名称中的任意一个,另一个不会随之自动更改。
在控件的事件过程名称中使用的是控件代码名称。 但是,从工作表的 Shapes 或 OLEObjects 集合返回控件时,必须使用形状名称而不是代码名称来通过名称引用控件。 例如,假定要向工作表添加一个复选框,默认的形状名称和代码名称都是 CheckBox1。 然后,如果你通过在“属性”窗口的“(名称)”旁边键入“chkFinished”更改了控件代码名称,则在事件过程名称中必须使用 chkFinished,但是你仍然需要使用 CheckBox1 从 Shapes 或 OLEObject 集合中返回控件,如下例所示。
Private Sub chkFinished_Click()
ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1
End Sub
方法
- AddCallout
- AddChart2
- AddConnector
- AddCurve
- AddFormControl
- AddLabel
- AddLine
- AddOLEObject
- AddPicture
- AddPicture2
- AddPolyline
- AddShape
- AddSmartArt
- AddTextbox
- AddTextEffect
- Add3DModel
- BuildFreeform
- 项
- SelectAll
属性
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。