Прочитать на английском

Поделиться через


Объект Shape (Проект)

Представляет объект в отчете Project, например диаграмму, таблицу отчета, текстовое поле, рисунок свободной формы или рисунок.

Замечания

Объект Shape является членом коллекции Shapes , которая включает все фигуры в отчете.

Примечание

Запись макроса для объекта Shape не реализована. То есть, когда вы записываете макрос в Project и вручную добавляете фигуру или редактируете элементы фигуры, шаги по добавлению фигуры и управлению ими не записываются.

Есть три объекта, которые представляют фигуры: коллекция Shapes , которая представляет все фигуры в документе; объект ShapeRange , представляющий указанное подмножество фигур в документе (например, объект ShapeRange может представлять фигуры один и четыре в документе, или он может представлять все выбранные фигуры в документе); и объект Shape , представляющий одну фигуру в документе. Если вы хотите работать с несколькими фигурами одновременно или с фигурами в выделенном фрагменте, используйте коллекцию ShapeRange .

Используйте Shapes(Index), где Индекс — это имя фигуры или номер индекса, чтобы вернуть один объект Shape .

Пример

В следующем примере макрос TestTextShape создает фигуру текстового поля, добавляет текст и изменяет свойства стиля фигуры, заливки, линии, тени и отражения. Макрос FlipShape переворачивает фигуру сверху вниз.

Sub TestTextShape()
    Dim theReport As Report
    Dim textShape As Shape
    Dim reportName As String
    
    reportName = "Simple scalar chart"
    
    Set theReport = ActiveProject.Reports(reportName)
    Set textShape = theReport.Shapes.AddTextbox(msoTextOrientationHorizontal, 30, 30, 300, 100)
    textShape.Name = "TestTextBox"
    
    textShape.TextFrame2.TextRange.Characters.Text = "This is a test. It's only a test. " _
        & "If it had been real information, there would be some real text here."
    textShape.TextFrame2.TextRange.Characters(1, 15).ParagraphFormat.FirstLineIndent = 0
    
    ' Set the font for the first 15 characters to dark blue bold.
    With textShape.TextFrame2.TextRange.Characters(1, 15).Font
        .Fill.Visible = msoTrue
        .Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent5
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 14
        .Bold = msoTrue
    End With
    
    textShape.ShapeStyle = msoShapeStylePreset42
    
    With textShape.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 255, 0)
        .Transparency = 0
        '.Solid
    End With
   
    With textShape.Line
        .Visible = msoTrue
        .ForeColor.ObjectThemeColor = msoThemeColorText1
        .ForeColor.TintAndShade = 0
        .ForeColor.Brightness = 0
        .Transparency = 0
    End With

    textShape.Shadow.Type = msoShadow22
    textShape.Reflection.Type = msoReflectionType3
End Sub

Sub FlipShape()
    Dim theReport As Report
    Dim theShape As Shape
    Dim reportName As String
    Dim shapeName As String
    
    reportName = "Simple scalar chart"
    shapeName = "TestTextBox"
    
    Set theShape = ActiveProject.Reports(reportName).Shapes(shapeName)

    theShape.Flip msoFlipVertical
    theShape.Select
End Sub

На рисунке 1 показан результат, в котором выбрана фигура, чтобы сделать вкладку ФОРМАТ ленты в разделе СРЕДСТВА РИСОВАНИЯ доступной, хотя активной вкладкой является КОНСТРУКТОР в разделе ИНСТРУМЕНТЫ ОТЧЕТОВ. Если фигура не выбрана, инструменты рисования и вкладка ФОРМАТ не будут видны.

Рис. 1. Тестирование объектной модели фигур

Тестирование объектной модели фигур

Методы

Свойства

См. также

Объект диаграммы объекта отчета

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.