WPS 基础接口 > 表格 API 参考 > Shapes > Shapes 对象

指定的工作表上的所有 Shape 对象的集合。

说明

每个 Shape 对象都代表绘图层中的一个对象,如自选图形、任意多边形、OLE 对象或图片。

注释
如果您想处理文档中的一部分形状(例如,只针对文档中的自选图形或只对选定的形状进行一些操作),则必须构造一个 ShapeRange 集合,其中包含您要处理的形状。

示例

使用 Shapes 属性可返回 Shapes 集合。下例选定 myDocument 上的所有形状。

注释
如果您要同时对工作表上的所有形状进行操作(例如删除或设置属性),请选定所有形状,然后对选定区域使用 ShapeRange 属性,以创建一个 ShapeRange 对象,该对象包含工作表上的所有形状,然后对 ShapeRange 对象应用相应的属性或方法。
示例代码
let myDocument = Worksheets.Item(1)
myDocument.Shapes.SelectAll()

使用 Shapes(index)(其中 index 是形状的名称或索引号)可返回一个 Shape 对象。下例设置 myDocument 上形状一的预设阴影的填充。

示例代码
let myDocument = Worksheets.Item(1)
myDocument.Shapes.Item(1).Fill.PresetGradient(msoGradientHorizontal, 1, msoGradientBrass)

使用 Shapes.Range(index)(其中 index 是形状的名称或索引号,或是它们的一个数组)可返回一个 ShapeRange 集合,该集合代表 Shapes 集合的一个子集。下例设置 myDocument 上形状一和三的填充图案。

示例代码
let myDocument = Worksheets.Item(1)
myDocument.Shapes.Range([1, 3]).Fill.Patterned(msoPatternHorizontalBrick)

工作表上的 ActiveX 控件有两个名称:一个是包含该控件的形状的名称,查看工作表时可在“名称”框中看到它;另一个是控件的代码名称,可以在“属性”窗口中“(名称)”右边的单元格中看到它。在您首次向工作表添加控件时,形状名称和代码名称是一致的。但是,如果您更改这两个名称中的任意一个,另一个不会随之自动更改。

在控件事件过程名称中使用的是控件的代码名称,但是,当您从工作表的 ShapesOLEObjects 集合中返回控件时,必须使用形状名称而不是代码名称,以便按名称引用控件。例如,假定您给工作表添加一个复选框,而默认的形状名称和代码名称都是 CheckBox1。如果通过在“属性”窗口的“(名称)”旁边键入“chkFinished”而更改了控件代码名称,则在事件过程名称中必须使用 chkFinished,但是您仍然需要使用 CheckBox1 从 ShapesOLEObject 集合中返回控件,如下例所示。

示例代码
function chkFinished_Click() {
    ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1
}


请参阅