形状对象 (发布服务器)
表示对象在绘图层中,如自选图形、 任意多边形、 OLE 对象、 ActiveX 控件或图片。 Shape 对象是 Shapes 集合,其中包含页面或所选内容中的所有形状的成员。
注意
有三个对象表示形状:
- Shapes 集合,表示文档上的所有形状。
- ShapeRange 集合表示文档上的形状的指定子集 (例如,ShapeRange 对象可以表示文档上的第一个形状和第四个形状,也可以代表文档) 上所有选定的形状。
- Shape 对象,表示文档中的单个形状。
如果您需要同时处理几个形状,或处理选定区域中的多个形状,请使用 ShapeRange 集合。
备注
返回文档上的现有形状
使用 Shapes (索引) (其中 index 是名称或索引号)返回单个 Shape 对象。
每个形状在被创建时即获得一个默认名称。 例如,如果在文档中添加三个不同形状,其名称可能是“矩形 2”、“文本框 3”和“椭圆 4”。 若要为形状指定更有意义的名称,请设置形状的 Name 属性。
返回选定内容中的形状
使用 Selection.ShapeRange (索引) (其中 index 是名称或索引号)返回一个 Shape 对象,该对象代表选定内容中的形状。
返回新创建的形状
若要将 Shape 对象添加到指定文档的形状集合并返回代表新创建的形状的 Shape 对象,请使用 Shapes 集合的以下方法之一:
- AddCallout
- AddConnector
- AddCurve
- AddLabel
- AddLine
- AddOLEObject
- AddPolyline
- AddShape
- AddTextBox
- AddTextEffect
使用一组形状
使用 GroupItems (索引) ,其中 index 是形状名称或组中的索引号,以返回一个 Shape 对象,该对象代表分组形状中的单个形状。 使用 ShapeRange.Group 或 Regroup 方法对形状区域进行分组,并返回表示新形成的组的单个 Shape 对象。 形成组后,可以采用与处理任何其他形状相同的方式处理组。
设置形状的格式
使用 AutoShapeType 属性可以指定自选图形的类型:例如椭圆、矩形或气球。
使用 Callout 属性(返回 CalloutFormat 对象)设置行标注的格式。
使用 填充 属性返回 对象,其中包含所有属性和闭合的形状的填充格式的方法 。
使用 Line 属性返回 LineFormat 对象,其中包含用于线条和箭头的格式属性和方法。
使用 SetShapesDefaultProperties 方法可设置文档的默认形状的格式。 新形状将继承默认形状的许多属性。
使用 Shadow 属性(返回 ShadowFormat 对象) 设置阴影的格式。
使用 TextEffect 属性(返回 TextEffectFormat 对象)设置艺术字的格式。
使用 TextFrame 和 Cell.TextRange 属性分别返回 TextFrame 和 TextRange 对象,这些对象包含用于在形状和出版物中插入和设置文本格式以及链接文本框架的所有属性和方法。
使用 TextWrap 属性(返回 WrapFormat 对象)定义文本环绕形状的方式。
使用 ThreeD 属性(返回 ThreeDFormat 对象) 创建 3D 形状。
使用 Type 属性可以指定形状的类型:自由多边形、自选图形、OLE 对象、标注或链接图片等。
示例
下面的示例水平翻转活动文档中的第一个形状。
Sub FlipShape()
ActiveDocument.Pages(1).Shapes(1).Flip FlipCmd:=msoFlipHorizontal
End Sub
以下示例水平翻转活动文档中名为 Rectangle 1 的形状。
Sub FlipShapeByName()
ActiveDocument.Pages(1).Shapes("Rectangle 1") _
.Flip FlipCmd:=msoFlipHorizontal
End Sub
假定所选内容包含至少一个形状,则以下示例为所选内容中的第一个形状设置填充效果。
Sub FillSelectedShape()
Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
End Sub
假定所选内容至少包含一个形状,则以下示例为该区域的所有形状设置填充效果。
Sub FillAllSelectedShapes()
Dim shpShape As Shape
For Each
shpShape In Selection.ShapeRange
shpShape.Fill.ForeColor.RGB = RGB(Red:=255, Green:=0, Blue:=0)
Next shpShape
End Sub
下面的示例向活动文档添加一个矩形。
Sub AddNewShape()
ActiveDocument.Pages(1).Shapes.AddShape Type:=msoShapeRectangle, _
Left:=400, Top:=72, Width:=100, Height:=200
End Sub
本示例向当前出版物添加三个形状,对形状进行分组,并设置组中每个形状的填充颜色。
Sub WorkWithGroupShapes()
With ActiveDocument.Pages(1).Shapes
.AddShape Type:=msoShapeIsoscelesTriangle, Left:=100, _
Top:=72, Width:=100, Height:=100
.AddShape Type:=msoShapeIsoscelesTriangle, Left:=250, _
Top:=72, Width:=100, Height:=100
.AddShape Type:=msoShapeIsoscelesTriangle, Left:=400, _
Top:=72, Width:=100, Height:=100
.SelectAll
With Selection.ShapeRange
.Group
.GroupItems(1).Fill.ForeColor _
.RGB = RGB(Red:=255, Green:=0, Blue:=0)
.GroupItems(2).Fill.ForeColor _
.RGB = RGB(Red:=0, Green:=255, Blue:=0)
.GroupItems(3).Fill.ForeColor _
.RGB = RGB(Red:=0, Green:=0, Blue:=255)
End With
End With
End Sub
以下示例将文本框添加到当前出版物的第一页,然后向其中添加文本并设置文本格式。
Sub CreateNewTextBox()
With ActiveDocument.Pages(1).Shapes.AddTextbox( _
Orientation:=pbTextOrientationHorizontal, Left:=100, _
Top:=100, Width:=200, Height:=100).TextFrame.TextRange
.Text = "This is a textbox."
With .Font
.Name = "Stencil"
.Bold = msoTrue
.Size = 30
End With
End With
End Sub
方法
- AddToCatalogMergeArea
- 应用
- Copy
- Cut
- 删除
- Duplicate
- Flip
- GetHeight
- GetLeft
- GetTop
- GetWidth
- IncrementLeft
- IncrementRotation
- IncrementTop
- MoveIntoTextFlow
- MoveOutOfTextFlow
- MoveToPage
- PickUp
- RemoveCatalogMergeArea
- RemoveFromCatalogMergeArea
- RerouteConnections
- SaveAsBuildingBlock
- SaveAsPicture
- ScaleHeight
- ScaleWidth
- Select
- SetCaption
- SetShapesDefaultProperties
- Ungroup
- ZOrder
属性
- Adjustments
- AlternativeText
- 应用程序
- AutoShapeType
- BlackWhiteMode
- BorderArt
- Callout
- CatalogMergeItems
- ConnectionSiteCount
- Connector
- ConnectorFormat
- Fill
- Glow
- GroupItems
- HasTable
- HasTextFrame
- Height
- HorizontalFlip
- Hyperlink
- ID
- InlineAlignment
- InlineTextRange
- IsExcess
- IsGroupMember
- IsInline
- Left
- Line
- LinkFormat
- LockAspectRatio
- 名称
- Nodes
- OLEFormat
- Parent
- ParentGroupShape
- PictureFormat
- Reflection
- Rotation
- Shadow
- SoftEdge
- Table
- Tags
- TextEffect
- TextFrame
- TextWrap
- ThreeD
- Top
- 类型
- VerticalFlip
- Vertices
- WebCheckBox
- WebCommandButton
- WebListBox
- WebNavigationBarSetName
- WebOptionButton
- WebTextBox
- Width
- 向导
- WizardTag
- WizardTagInstance
- ZOrderPosition
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。