Shapes.Range-Methode (Project)

Gibt ein ShapeRange-Objekt zurück, das eine Teilmenge von Shapes in der Shapes-Auflistung darstellt.

Syntax

Ausdruck verwendet werden. Bereich (Index)

expression Eine Variable, die ein Shapes-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Index Erforderlich Variant Gibt mindestens ein Shape an, das in den Bereich aufgenommen werden soll. Kann eine ganze Zahl für die Indexnummer eines Shapes, eine Zeichenfolge für den Namen eines Shapes oder ein Array sein, das entweder Ganzzahlen oder Zeichenfolgen enthält.
Index Erforderlich Variant
Name Erforderlich/Optional Datentyp Beschreibung

Rückgabewert

ShapeRange

Der Bereich der Shapes, die vom Parameter INDEX angegeben werden.

Hinweise

Hinweis

Die meisten Operationen, die Sie mit einem Shape-Objekt ausführen können, können Sie auch mit einem ShapeRange-Objekt durchführen, das eine einzige Form enthält. Einige Operationen führen zu einem Fehler, wenn sie für ein ShapeRange-Objekt durchgeführt werden, das mehrere Formen enthält.

Obwohl Sie die Range-Eigenschaft verwenden können, um eine beliebige Anzahl von Shapes in einem Bericht zurückzugeben, ist es einfacher, die Standardwert-Eigenschaft zu verwenden, um ein einzelnes Shape in der Auflistung zurückzugeben. Ist z. B. Shapes(1) einfacher als Shapes.Range(1).

Um ein Array von ganzen Zahlen oder Zeichenfolgen für den Index-Parameter anzugeben, können Sie die Matrix-Funktion verwenden. Mit dem folgenden Makro werden beispielsweise zwei Shapes ausgewählt, die durch ihren Namen angegeben werden.

Sub SelectShapeRange()
    Dim arShapes() As Variant
    Dim oShapeRange As ShapeRange
    
    arShapes = Array("TextBox 4", "TextBox 5")
    Set oShapeRange = ActiveProject.Reports("Table Tests").Shapes.Range(arShapes)
    oShapeRange.Select
End Sub

Beispiel

Wenn Sie einen Bericht mit zwei Textfeldern erstellen, wie im vorherigen Code, wählt das folgende Makro die Textfelder nach Indexnummer aus und fügt dann jedem von ihnen einen Schatten hinzu.

Sub AddShadow2Shapes()
    Dim oReports As Reports
    Dim oReport As Report
    Dim oShapeRange As ShapeRange
    Dim reportName As String
    Dim arShapes() As Variant

    arShapes = Array(3, 4)

    reportName = "Table Tests"
    Set oReports = ActiveProject.Reports
    
    If (oReports.IsPresent(reportName)) Then
        ' Make the report the active view.
        oReports(reportName).Apply
        
        Set oReport = oReports(reportName)
        
        Set oShapeRange = oReport.Shapes.Range(arShapes)
        
        oShapeRange.Select
        oShapeRange.Shadow.Type = msoShadow1
    End If
End Sub

Siehe auch

Shapes-ObjektShapeRange-Objekt

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.