Word VBA教程:Shapes集合对象
2017-03-27 08:44阅读:
由
Shape对象组成的集合,这些对象代表文档中或者文档页眉和页脚中的所有图形。每个
Shape对象代表图形层中的一个对象,诸如自选图形、任意多边形、OLE对象或图片等。
注意
如果需要处理文档图形的一个子集(例如只处理文档中的自选图形或仅处理选定的图形),就必须创建一个
ShapeRange集合,以用该集合包含需要处理的图形。
使用 Shapes集合
用
Shapes属性可返回
Shapes集合。下例选定活动文档中的所有图形。
ActiveDocument.Shapes.SelectAll
注意
如果需要同时处理(例如删除或设置某个属性)文档中的所有图形,可用
Range方法创建一个包含
Shapes集合中的所有图形的 ShapeRange对象,然后对 ShapeRange对象应用相应的属性或方法。
用 Shapes集合的下列方法之一可向文档中添加图形并返回一个 Shape对象(该对象代表了新创建的图形):
AddCallout、
AddCurve、
AddLabel、
AddLine
、
AddOleControl、
AddOleObject、
AddPolyline、
AddShape、
AddTextbox、
AddTextEffect或
BuildFreeForm。下例向活动文档添加一个矩形。
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集合。