Freigeben über


Shape-Objekt (Publisher)

Stellt ein Objekt in der Zeichnungsebene, wie beispielsweise eine AutoForm, Freihandform, OLE-Objekt, ActiveX-Steuerelement oder Bild. Shape -Objekts ist ein Element der Shapes -Auflistung, die alle Formen auf einer Seite oder in einer Auswahl enthält.

Hinweis

Es gibt drei Objekte, die Formen darstellen:

  • Die Shapes-Auflistung , die alle Formen in einem Dokument darstellt.
  • Die ShapeRange-Auflistung , die eine angegebene Teilmenge der Formen in einem Dokument darstellt (z. B. kann ein ShapeRange-Objekt die Shapes 1 und vier im Dokument darstellen oder alle ausgewählten Formen im Dokument darstellen).
  • Das Shape-Objekt , das eine einzelne Form in einem Dokument darstellt.

Wenn Sie mit mehreren Formen gleichzeitig oder mit Formen innerhalb einer Auswahl arbeiten möchten, verwenden Sie eine Sammlung ShapeRange.

Hinweise

Zurückgeben einer vorhandenen Form in einem Dokument

Verwenden Sie Shapes (Index), wobei index der Name oder die Indexnummer ist, um ein einzelnes Shape-Objekt zurückzugeben.

Jedes Shape erhält einen Standardnamen erstellt wird. Wenn Sie z. B. einem Dokument drei verschiedene Formen hinzufügen, können diese als Rechteck 2, Textfeld 3 und Oval 4 bezeichnet werden. Um einem Shape einen aussagekräftigeren Namen zu geben, legen Sie die Name-Eigenschaft der Form fest.

Zurückgeben einer Form oder Formen innerhalb einer Auswahl

Verwenden Sie Selection.ShapeRange (Index), wobei index der Name oder die Indexnummer ist, um ein Shape-Objekt zurückzugeben, das eine Form innerhalb einer Auswahl darstellt.

Zurückgeben einer neu erstellten Form

Um der Auflistung von Shapes für das angegebene Dokument ein Shape-Objekt hinzuzufügen und ein Shape-Objekt zurückzugeben, das die neu erstellte Form darstellt, verwenden Sie eine der folgenden Methoden der Shapes-Auflistung :

Arbeiten mit einer Gruppe von Formen

Verwenden Sie GroupItems (Index), wobei index der Name der Form oder die Indexnummer innerhalb der Gruppe ist, um ein Shape-Objekt zurückzugeben, das eine einzelne Form in einer gruppierten Form darstellt. Verwenden Sie die ShapeRange.Group - oder Regroup-Methode , um einen Bereich von Formen zu gruppieren und ein einzelnes Shape-Objekt zurückzugeben, das die neu gebildete Gruppe darstellt. Nachdem eine Gruppe gebildet wurde, können Sie mit der Gruppe genauso arbeiten wie mit jeder anderen Form.

Formatieren einer Form

Beispiel

Das folgende Beispiel kippt die Form 1 im aktiven Dokument horizontal.

Sub FlipShape() 
    ActiveDocument.Pages(1).Shapes(1).Flip FlipCmd:=msoFlipHorizontal 
End Sub

Im folgenden Beispiel wird die Form "Rectangle 1" im aktiven Dokument horizontal umgedreht.

Sub FlipShapeByName() 
    ActiveDocument.Pages(1).Shapes("Rectangle 1") _ 
        .Flip FlipCmd:=msoFlipHorizontal 
End Sub

Das folgende Beispiel legt die Füllung für die erste Form in der Auswahl, vorausgesetzt, dass die Auswahl mindestens eine Form enthält.

Sub FillSelectedShape() 
    Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0) 
End Sub

Im folgenden Beispiel wird die Füllung für alle Formen in der Auswahl festgelegt. Voraussetzung dafür ist, dass sich in der Auswahl mindestens eine Form befindet.

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

Im folgenden Beispiel wird das aktive Dokument ein Rechteck hinzugefügt.

Sub AddNewShape() 
    ActiveDocument.Pages(1).Shapes.AddShape Type:=msoShapeRectangle, _ 
        Left:=400, Top:=72, Width:=100, Height:=200 
End Sub

In diesem Beispiel werden der aktiven Publikation drei Formen hinzugefügt, die Shapes gruppiert und die Füllfarbe für jedes der Shapes in der Gruppe festgelegt.

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

Im folgenden Beispiel wird der ersten Seite der aktiven Publikation ein Textfeld hinzugefügt, der dann Text hinzugefügt und der Text formatiert wird.

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

Methoden

Eigenschaften

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.