VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: ShapeRange-Auflistungsobjekt

Shapes-Auflistung (Shape-Objekt)
GroupShapes-Auflistung (Shape-Objekt)
Mehrere Objekte

Stellt einen Formbereich dar, der aus einem Satz von Formen in einem Dokument besteht. Ein Formbereich kann aus nur einer einzigen Form oder aus beliebig vielen Formen des Dokuments bestehen. Sie können beliebige Formen aus dem Dokument oder aus der Markierung in einen Formenbereich aufnehmen. Beispielsweise könnten Sie eine ShapeRange-Auflistung bilden, die die ersten drei Formen, alle markierten Formen oder alle Freihandobjekte eines Dokuments enthält.

Einen Überblick über die Arbeit mit einer einzelnen Form oder mit mehreren Formen gleichzeitig finden Sie unter Arbeiten mit Formen (Zeichnungsobjekte).

Verwenden der ShapeRange-Auflistung

Dieser Abschnitt beschreibt:

  • Das Zurückgeben eines Satzes von Formen, die durch Name oder Indexnummer angegeben sind.

  • Das Zurückgeben aller oder einiger markierter Formen eines Dokuments.

Zurückgeben eines Satzes von Formen, die durch Name oder Indexnummer angegeben sind

Verwenden Sie Shapes.Range(Index), wobei Index der Name oder die Indexnummer der Form oder eine Matrix ist, die entweder Namen oder Indexnummern von Formen enthält, um eine ShapeRange-Auflistung zurückzugeben, die einen Satz von Formen eines Dokuments darstellt. Mit Hilfe der Array-Funktion können Sie eine Matrix mit Namen oder Indexnummern bilden. Im folgenden Beispiel wird in myDocument für die erste und dritte Form ein Füllmuster festgelegt.

Set myDocument = Worksheets(1)
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _
    msoPatternHorizontalBrick

Im folgenden Beispiel wird in myDocument für die Formen "Ellipse 4" und "Rechteck 5" ein Füllmuster festgelegt.

Set myDocument = Worksheets(1)
Set myRange = myDocument.Shapes.Range(Array("Oval 4", _
    "Rectangle 5"))
myRange.Fill.Patterned msoPatternHorizontalBrick

Sie können zwar mit Hilfe der Range-Eigenschaft eine beliebige Anzahl von Formen oder Folien zurückgeben, doch ist es einfacher, die Item-Methode zu verwenden, wenn Sie nur ein einzelnes Element der Auflistung zurückgeben möchten. Beispielsweise ist Shapes(1) einfacher als Shapes.Range(1).

Zurückgeben aller oder einiger markierter Formen eines Dokuments

Verwenden Sie die ShapeRange-Eigenschaft des Selection-Objekts, um alle Formen in der Markierung zurückzugeben. Im folgenden Beispiel wird davon ausgegangen, dass mindestens eine Form markiert ist und für alle markierten Formen im ersten Fenster die Füllfarbe des Vordergrundes festgelegt ist.

Windows(1).Selection.ShapeRange.Fill.ForeColor.RGB = _
    RGB(255, 0, 255)

Verwenden Sie Selection.ShapeRange(Index), wobei Index der Name oder die Indexnummer der Form ist, um eine einzelne Form der Markierung zurückzugeben. Im folgenden Beispiel wird davon ausgegangen, dass mindestens zwei Formen markiert sind und für die zweite Form in der Auflistung der markierten Formen im ersten Fenster die Füllfarbe des Vordergrundes festgelegt ist.

Windows(1).Selection.ShapeRange(2).Fill.ForeColor.RGB = _
    RGB(255, 0, 255)