Объект Shape (Publisher)
Представляет объект в уровне рисования, например автошап, freeform, объект OLE, ActiveX или изображение. Объект Shape входит в коллекцию Shapes , которая включает все фигуры на странице или в выборе.
Примечание
Существует три объекта, которые представляют фигуры:
- Коллекция Shapes , представляю которой представлены все фигуры на документе.
- Коллекция ShapeRange , которая представляет заданный подмножество фигур на документе (например, объект ShapeRange может представлять фигуры одного и четырех на документе, или он может представлять все выбранные фигуры в документе).
- Объект Shape , который представляет одну фигуру на документе.
Если вы хотите работать с несколькими фигурами одновременно или с фигурами в рамках выбора, используйте коллекцию ShapeRange .
Примечания
Возвращение существующей фигуры в документе
Чтобы вернуть один объект Shape, используйте shapes (index), где индекс — это имя или номер индекса.
Каждой фигуре при ее создания назначено имя по умолчанию. Например, если добавить три различных фигуры в документ, они могут быть названы Прямоугольник 2, TextBox 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 , чтобы указать тип AutoShape: например, овал, прямоугольник или воздушный шар.
Используйте свойство Callout , которое возвращает объект CalloutFormat , для формата вызовов строки.
Чтобы вернуть объект FillFormat , содержащий все свойства и методы форматирования заполнения закрытой формы, используйте свойство Fill.
Используйте свойство Line для возврата объекта LineFormat , который содержит свойства и методы форматирования линий и стрелок.
Используйте методы PickUp и Apply для переноса форматирования из одной фигуры в другую.
Для настройки форматирования формы по умолчанию для документа используйте метод SetShapesDefaultProperties . Новые фигуры наследуют многие атрибуты из формы по умолчанию.
Используйте свойство Shadow , которое возвращает объект ShadowFormat , для формата тени.
Используйте свойство TextEffect , которое возвращает объект TextEffectFormat , для формата WordArt.
Используйте свойства TextFrame и Cell.TextRange , чтобы вернуть объекты TextFrame и TextRange соответственно, которые содержат все свойства и методы вставки и форматирования текста в формах и публикациях и связывания текстовых кадров.
Используйте свойство TextWrap , возвращая объект WrapFormat , чтобы определить, как текст обтекает фигуры.
Чтобы создать 3D-фигуры, используйте свойство ThreeD , которое возвращает объект ThreeDFormat .
Используйте свойство Type , чтобы указать тип фигуры: freeform, AutoShape, объект OLE, callout или связанное изображение, например.
Используйте свойства Ширина и Высота , чтобы указать размер фигуры.
Пример
В следующем примере горизонтально переворачивается фигура на активном документе.
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 и обратная связь.