共用方式為


Publisher () 的 Shape 物件

代表繪圖圖層,例如快取圖案、 手繪多邊形中的物件、 OLE 物件、 ActiveX 控制項或圖片。 Shape 物件是 Shapes 集合,其中包含頁面上或選取範圍中的所有圖形的成員。

注意事項

有三個物件代表圖形:

  • Shapes集合,代表檔上的所有圖案。
  • ShapeRange集合,代表檔上指定的圖案子集 (例如,ShapeRange物件可以代表檔上的第一個和第四個圖案,也可以代表檔) 上所有選取的圖案。
  • Shape物件,代表檔上的單一圖案。

如果您想要同時使用多個圖案,或是使用選取範圍內的圖案,請使用 ShapeRange 集合。

註解

傳回檔上的現有圖形

使用 Shapes (索 ) ,其中 index 是名稱或索引編號,可傳回單一 Shape 物件。

每個圖案在建立時都會指定一個預設名稱。 例如,如果您將三個不同的圖案加入至文件,它們的名稱可能就是 Rectangle 2、TextBox 3 及 Oval 4。 若要為圖形提供更有意義的名稱,請設定圖形的 Name 屬性。

傳回選取範圍內的圖案

使用 Selection.ShapeRange (索 ) ,其中 index 是名稱或索引編號,可傳回代表選取範圍內圖案的 Shape 物件。

傳回新建立的圖形

若要將 Shape 物件新增至指定檔的圖案集合,並傳回代表新建立之圖案的 Shape 物件,請使用 Shapes 集合的下列其中一種方法:

使用一組圖形

使用 GroupItems (索引) ,其中 index 是圖案名稱或群組內的索引編號,可傳回代表群組圖形中單一圖案的 Shape 物件。 使用 ShapeRange.GroupRegroup 方法可將圖案範圍分組,並傳回代表新格式群組的單一 Shape 物件。 組成群組之後,您可以使用群組的方式與使用任何其他圖形的方式相同。

格式化圖形

  • 使用 AutoShapeType 屬性可指定 AutoShape 的類型:例如橢圓形、矩形或氣球。

  • 使用會傳回CalloutFormat物件的Callout屬性來格式化直線圖說文字。

  • Use the Fill property to return the FillFormat object, which contains all the properties and methods for formatting the fill of a closed shape.

  • Use the Line property to return a LineFormat object, which contains properties and methods for formatting lines and arrows.

  • 使用 PickUpApply 方法,將格式設定從一個圖形傳輸到另一個圖形。

  • 使用 SetShapesDefaultProperties 方法可設定檔之預設圖案的格式設定。 新圖案會繼承預設圖案的許多屬性。

  • 使用會傳回ShadowFormat物件的Shadow屬性來格式化陰影。

  • 使用會傳回TextEffectFormat物件的TextEffect屬性來格式化文字藝術師。

  • 使用 TextFrameCell.TextRange 屬性分別傳回 TextFrameTextRange 物件,其中包含在圖形和發行集內插入和格式化文字以及將文字圖文框連結在一起的所有屬性和方法。

  • 使用會傳回WrapFormat物件的TextWrap屬性來定義文字繞圖案的換行方式。

  • 使用會傳回ThreeDFormat物件的ThreeD屬性來建立 3D 圖形。

  • 使用 Type 屬性來指定圖案的類型:例如手繪多邊形、快取圖案、OLE 物件、圖說文字或連結的圖片。

  • 使用 WidthHeight 屬性可指定圖案的大小。

範例

以下範例會水平翻轉現用文件中的圖案一。

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

方法

屬性

另請參閱

支援和意見反應

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