Shapes 集合对象

         
多个对象
Shapes
多个对象

指定幻灯片中所有 Shape 对象的集合。每个 Shape 对象代表绘图层中的一个对象,例如自选图形、任意多边形、OLE 对象或图片。

注意  如果要使用文档中的部分形状(例如,只对文档中的自选图形或选定的形状进行操作),则必须构造一个包含要使用的形状的 ShapeRange 集合。关于一次使用单个形状或多个形状的概述,请参阅使用形状(绘图对象)

使用 Shapes 集合

使用 Shapes 属性返回 Shapes 集合。以下示例选择当前演示文稿中的所有形状。

ActivePresentation.Slides(1).Shapes.SelectAll

注意  如果要同时对文档中的所有形状进行某种操作(例如删除或设置一个属性),可使用 Range 方法不带参数来创建一个 ShapeRange 对象(该对象包含 Shapes 集合中的所有形状),然后对 ShapeRange 对象应用适当的属性或方法。

使用 AddCalloutAddCommentAddConnectorAddCurveAddLabelAddLineAddMediaObjectAddOLEObjectAddPictureAddPlaceholderAddPolylineAddShapeAddTableAddTextboxAddTextEffectAddTitle 方法新建一个形状并将其添加到 Shapes 集合中。将 BuildFreeform 方法和 ConvertToShape 方法联合使用,可以新建任意多边形并添加到该集合。以下示例在当前演示文稿中添加一个矩形。

ActivePresentation.Slides(1).Shapes.AddShape Type:=msoShapeRectangle, _
    Left:=50, Top:=50, Width:=100, Height:=200

使用 Shapes(index) 返回一个 Shape 对象,其中 index 是该形状的名称或索引号。以下示例将当前演示文稿中第一个形状的填充设为预设的底纹。

ActivePresentation.Slides(1).Shapes(1).Fill _
    .PresetGradient Style:=msoGradientHorizontal, Variant:=1, _
    PresetGradientType:=msoGradientBrass

使用 Shapes.Range(index) 返回 ShapeRange 集合,其中 index 是该形状的名称或索引号或是一组形状的名称或索引号。该集合代表 Shapes 集合的一个子集。以下示例设置当前演示文稿中第一个和第三个形状的填充图案。

ActivePresentation.Slides(1).Shapes.Range(Array(1, 3)).Fill _
    .Patterned Pattern:=msoPatternHorizontalBrick

使用 Shapes.Placeholders(index) 返回一个代表占位符的 Shape 对象,其中 index 是占位符编号。如果指定的幻灯片有标题,使用 Shapes.Placeholders(1)Shapes.Title 返回标题占位符。以下示例在当前演示文稿中添加一张幻灯片并为标题和副标题添加文本(副标题是此版式的幻灯片中的第二个占位符)。

With ActivePresentation.Slides.Add(Index:=1, Layout:=ppLayoutTitle).Shapes
    .Title.TextFrame.TextRange = "This is the title text"
    .Placeholders(2).TextFrame.TextRange = "This is subtitle text"
End With