Teilen über


Shapes.Range-Methode (Project)

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

Syntax

Ausdruck. Bereich (Index)

expression Eine Variable, die ein Shapes-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Index Erforderlich Variant Gibt eine oder mehrere Formen an, die in den Bereich eingeschlossen werden sollen. Kann eine ganze Zahl für die Indexnummer einer Form, eine Zeichenfolge für den Namen einer Form oder ein Array sein, das entweder ganze Zahlen oder Zeichenfolgen enthält.
Index Erforderlich Variant
Name Erforderlich/Optional Datentyp Beschreibung

Rückgabewert

ShapeRange

Der Bereich von Formen, die durch den Index-Parameter 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 Formen in einem Bericht zurückzugeben, ist es einfacher, die Value-Standardeigenschaft zu verwenden, um ein einzelnes Shape in der Auflistung zurückzugeben. ist beispielsweise 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 Array-Funktion verwenden. Mit dem folgenden Makro werden z. B. zwei Shapes ausgewählt, die durch den 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 erstellen, der zwei Textfelder wie im vorherigen Code enthält, markiert das folgende Makro die Textfelder nach Indexnummer und fügt dann jedem ein 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.