Auf Englisch lesen

Freigeben über


Shape-Objekt (Project)

Stellt ein Objekt in einem Project-Bericht dar, z. B. ein Diagramm, eine Berichtstabelle, ein Textfeld, eine Freihandformzeichnung oder ein Bild.

Hinweise

Das Shape-Objekt ist ein Element der Shapes-Auflistung , die alle Shapes im Bericht enthält.

Hinweis

Die Makroaufzeichnung für das Shape-Objekt ist nicht implementiert. Das heißt, wenn Sie ein Makro in Project aufzeichnen und manuell eine Form hinzufügen oder Shape-Elemente bearbeiten, werden die Schritte zum Hinzufügen und Bearbeiten der Form nicht aufgezeichnet.

Es gibt drei Objekte, die Formen darstellen: die Shapes-Auflistung , die alle Formen in einem Dokument darstellt; das ShapeRange-Objekt , das eine angegebene Teilmenge der Formen in einem Dokument darstellt (z. B. könnte ein ShapeRange-Objekt die Shapes 1 und vier im Dokument darstellen oder alle ausgewählten Formen im Dokument darstellen); und 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.

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

Beispiel

Im folgenden Beispiel erstellt das TestTextShape-Makro eine Textfeldform, fügt Text hinzu und ändert die Eigenschaften für Formart, Füllung, Linie, Schatten und Reflektion. Das FlipShape-Makro kippt die Form von oben nach unten.

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

Abbildung 1 zeigt das Ergebnis, in dem die Form ausgewählt ist, um die Registerkarte FORMAT des Menübands unter ZEICHENTOOLS verfügbar zu machen, obwohl die aktive Registerkarte ENTWURF unter BERICHTSTOOLS ist. Wenn die Form nicht ausgewählt wäre, wären ZEICHENTOOLS und die Registerkarte FORMAT nicht sichtbar.

Abbildung 1: Testen des Form-Objektmodells

Testen des Form-Objektmodells

Methoden

Eigenschaften

Siehe auch

Diagrammobjekt des Berichtsobjekts

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.