Shapes 集合对象

         
多种对象
Shapes (Shape)
多种对象

Shape 对象组成的集合,这些对象代表文档中或者文档页眉和页脚中的所有图形。每个 Shape 对象代表图形层中的一个对象,诸如自选图形、任意多边形、OLE 对象或图片等。

注意   如果需要处理文档图形的一个子集(例如只处理文档中的自选图形或仅处理选定的图形),就必须创建一个 ShapeRange 集合,以用该集合包含需要处理的图形。

使用 Shapes 集合

Shapes 属性可返回 Shapes 集合。下例选定活动文档中的所有图形。

ActiveDocument.Shapes.SelectAll

注意   如果需要同时处理(例如删除或设置某个属性)文档中的所有图形,可用 Range 方法创建一个包含 Shapes 集合中的所有图形的 ShapeRange 对象,然后对 ShapeRange 对象应用相应的属性或方法。

Shapes 集合的下列方法之一可向文档中添加图形并返回一个 Shape 对象(该对象代表了新创建的图形):AddCalloutAddCurveAddLabelAddLineAddOleControlAddOleObjectAddPolylineAddShapeAddTextboxAddTextEffectBuildFreeForm。下例向活动文档添加一个矩形。

ActiveDocument.Shapes.AddShape msoShapeRectangle, 50, 50, 100, 200

Shapes(index) 可返回单独的 Shape 对象,其中 index 为该对象的名称或索引序号。下例水平翻转活动文档中的第一个图形。

ActiveDocument.Shapes(1).Flip msoFlipHorizontal

下例水平翻转活动文档中名为“Rectangle 1”的图形。

ActiveDocument.Shapes("Rectangle 1").Flip msoFlipHorizontal

每个图形在创建时都得到一个默认的名称。例如,如果向文档中添加了三个不同的图形,它们将会得到诸如“矩形 2”、“文本框 3”和“椭圆 4”之类的名称。如果要给图形起一个更有意义的名称,请设置其 Name 属性。

说明

Shapes 集合不包含 InlineShape 对象。通常将 InlineShape 对象视为字符,并可将其象字符一样置于一行文本之中。尽管 Shape 对象的位置锁定于某一文本区域,但该对象可自由浮移,并可置于该页的任何位置。可用 ConvertToInlineShape 方法和 ConvertToShape 方法来转换图形的类型。但只能将图片、OLE 对象和 ActiveX 控件转换为嵌入式图形。

文档中该集合的 Count 属性仅返回正文部分的项目数。要统计所有页眉和页脚中的图形的数量,可使用任何 HeaderFooter 对象的 Shapes 集合。