Объект Shape (издатель)
Представляет объект на слое рисования, например автофигуру, свободную форму, объект OLE, элемент ActiveX или рисунок. Объект Shape является членом коллекции Shapes , которая включает все фигуры на странице или в выделенном фрагменте.
Примечание.
Существует три объекта, которые представляют фигуры:
- Коллекция Фигуры , представляющая все фигуры в документе.
- Коллекция ShapeRange , представляющая указанное подмножество фигур в документе (например, объект ShapeRange может представлять фигуры один и четыре в документе или может представлять все выбранные фигуры в документе).
- Объект Shape , представляющий одну фигуру в документе.
Если вы хотите работать с несколькими фигурами одновременно или с фигурами в выделенном фрагменте, используйте коллекцию ShapeRange .
Замечания
Возврат существующей фигуры в документе
Используйте фигуры (индекс), где индекс — это имя или номер индекса, чтобы вернуть один объект Shape .
Каждой фигуре присваивается имя по умолчанию при ее создании. Например, если добавить в документ три разных фигуры, они могут называться Rectangle 2, TextBox 3 и Oval 4. Чтобы придать фигуре более понятное имя, задайте для фигуры свойство Name .
Возврат фигуры или фигур в выделенном фрагменте
Используйте Selection.ShapeRange (index), где индекс — это имя или номер индекса, чтобы вернуть объект Shape , представляющий фигуру в выделенном фрагменте.
Возврат только что созданной фигуры
Чтобы добавить объект Shape в коллекцию фигур для указанного документа и вернуть объект Shape , представляющий только что созданную фигуру, используйте один из следующих методов коллекции Shapes :
- AddCallout
- AddConnector
- AddCurve
- AddLabel
- AddLine
- AddOLEObject
- AddPolyline
- AddShape
- AddTextBox
- AddTextEffect
Работа с группой фигур
Используйте GroupItems (index), где index — это имя фигуры или номер индекса в группе, чтобы вернуть объект Shape , представляющий одну фигуру в сгруппированной фигуре. Используйте метод ShapeRange.Group или Regroup , чтобы сгруппировать диапазон фигур и вернуть один объект Shape , представляющий только что сформированную группу. После формирования группы вы можете работать с ней так же, как с любой другой фигурой.
Форматирование фигуры
Используйте свойство AutoShapeType , чтобы указать тип AutoShape: овальный, прямоугольник или воздушный шар, например.
Используйте свойство Callout , которое возвращает объект CalloutFormat , чтобы отформатировать выноски строк.
Используйте свойство Fill , чтобы вернуть объект FillFormat , содержащий все свойства и методы для форматирования заливки закрытой фигуры.
Свойство Line используется для возврата объекта LineFormat , который содержит свойства и методы для форматирования линий и стрелок.
Используйте методы PickUp и Apply для передачи форматирования из одной фигуры в другую.
Используйте метод SetShapesDefaultProperties , чтобы задать форматирование фигуры по умолчанию для документа. Новые фигуры наследуют многие из своих атрибутов от фигуры по умолчанию.
Используйте свойство Shadow , которое возвращает объект ShadowFormat , чтобы отформатировать тень.
Используйте свойство TextEffect , которое возвращает объект TextEffectFormat , чтобы отформатировать объект WordArt.
Используйте свойства TextFrame и Cell.TextRange для возврата объектов TextFrame и TextRange соответственно, которые содержат все свойства и методы для вставки и форматирования текста в фигурах и публикациях и связывания текстовых кадров.
Используйте свойство TextWrap , которое возвращает объект WrapFormat , чтобы определить, как текст обтекается вокруг фигур.
Используйте свойство ThreeD , которое возвращает объект ThreeDFormat , чтобы создать трехмерные фигуры.
Используйте свойство Type , чтобы указать тип фигуры: свободная форма, автофигура, объект OLE, выноска или связанное изображение, например.
Используйте свойства Width и Height , чтобы указать размер фигуры.
Пример
В следующем примере выполняется горизонтальное переворачивание фигуры на активном документе.
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
- Apply
- Copy
- Cut
- Delete
- 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
- Application
- 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
- Name
- Nodes
- OLEFormat
- Parent
- ParentGroupShape
- PictureFormat
- Reflection
- Rotation
- Shadow
- SoftEdge
- Table
- Tags
- TextEffect
- TextFrame
- TextWrap
- ThreeD
- Top
- Type
- VerticalFlip
- Vertices
- WebCheckBox
- WebCommandButton
- WebListBox
- WebNavigationBarSetName
- WebOptionButton
- WebTextBox
- Width
- Wizard
- WizardTag
- WizardTagInstance
- ZOrderPosition
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.