ShapeRange集合对象、Shapes集合对象
一、ShapeRange集合对象表示一个形状范围,该范围包含文档上的一组形状。形状范围包含的形状少则一个,多则文档上的所有形状。要构造形状范围,可从文档上的所有形状或选定的所有形状中选择所需的任何形状。例如,可以构造一个 ShapeRange 集合,该集合在包含文档上前三个形状、所有选取的形状或所有任意多边形。
关于如何使用一个形状或同时使用多个形状的概述,请参阅使用形状(绘图对象)。
使用 ShapeRange 集合
返回指定名称或索引号的一组形状。
返回文档上所有或部分选定形状。
返回指定名称或索引号的一组形状
使用 Shapes.Range(index) 返回代表文档上一组形状的 ShapeRange 集合,此处 index 是形状或包含名称或索引的数组的名称或索引号。可以使用 Array 函数来构造名称或索引号数组。以下示例对 myDocument 上的第一个和第三个形状设置填充模式。
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes.Range(Array(1, 3)).Fill _
.Patterned msoPatternHorizontalBrick
以下示例为 myDocument 上名为“Oval 4”和“Rectangle 5”的形状设置填充模式。
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes _
.Range(Array("Oval 4", "Rectangle 5"))
myRange.Fill.Patterned msoPatternHorizontalBrick
虽然可以使用 Range 方法返回任意数量的形状或幻灯片,如果仅想返回一个集合成员,则使用 Item 方法更为简单。例如,Shapes(1) 比 Shapes.Range(1) 简单。
返回文档中所有或部分选定形状
使用 Selection 对象的 ShapeRange 属性返回选定对象中的所有形状。以下示例设置第一个窗口中选定对象的所有形状的填充前景颜色(假设选定对象中至少有一个形状)。
Windows(1).Selection.ShapeRange.Fill.ForeColor _
.RGB = RGB(255, 0, 255)
使用 Selection.ShapeRange(index) 返回选定对象中的单个形状,其中 index 是形状的名称或索引号。以下示例设置第一个窗口选定形状的集合中第二个形状的前景填充颜色(假设选定对象中至少有两个形状)。
Windows(1).Selection.ShapeRange(2).Fill.ForeColor _
.RGB = RGB(255, 0, 255)
二、Shapes集合对象
指定幻灯片中所有 Shape 对象的集合。每个 Shape 对象代表绘图层中的一个对象,例如自选图形、任意多边形、OLE 对象或图片。
注意 如果要使用文档中的部分形状(例如,只对文档中的自选图形或选定的形状进行操作),则必须构造一个包含要使用的形状的 ShapeRange 集合。关于一次使用单个形状或多个形状的概述,请参阅使用形状(绘图对象)。
使用 Shapes 集合
使用 Shapes 属性返回 Shapes 集合。以下示例选择当前演示文稿中的所有形状。
ActivePresentation.Slides(1).Shapes.SelectAll
注意 如果要同时对文档中的所有形状进行某种操作(例如删除或设置一个属性),可使用 Range 方法不带参数来创建一个 ShapeRange 对象(该对象包含 Shapes 集合中的所有形状),然后对 ShapeRange 对象应用适当的属性或方法。
使用 AddCallout、AddComment、AddConnector、AddCurve、AddLabel、AddLine、AddMediaObject、AddOLEObject、AddPicture、AddPlaceholder、AddPolyline、AddShape、AddTable、AddTextbox、AddTextEffect 或 AddTitle 方法新建一个形状并将其添加到 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
我在努力中 哈哈,看的人少,回一下
页:
[1]