閱讀英文

共用方式為


專案 () 的 Shape 物件

代表 Project 報表中的物件,例如圖表、報表資料表、文字方塊、手繪多邊形或圖片。

註解

Shape物件是Shapes集合的成員,其中包含報表中的所有圖形。

注意

未實作 Shape 物件的宏錄製。 也就是說,當您在 Project 中錄製巨集並手動新增圖形或編輯圖形元素時,不會記錄新增和操作圖形的步驟。

有三個物件代表圖案:代表檔上所有圖案的 Shapes 集合; ShapeRange 物件,代表檔上指定的圖案子集 (例如, ShapeRange 物件可以代表檔上的第一個和第四個圖案,或是可以代表檔) 上所有選取的圖案;和 Shape 物件,代表檔上的單一圖案。 如果您想要同時使用多個圖案,或是使用選取範圍內的圖案,請使用 ShapeRange 集合。

使用 Shapes(Index) ,其中 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: Testing the Shape object model

Testing the Shape object model

方法

屬性

另請參閱

報表物件圖表物件

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應