Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

VBA-Begriff: Areas-Auflistungsobjekt

Worksheets-Auflistung (Worksheet-Objekt)
Range-Objekt
Areas-Auflistung (Range-Objekt)
Mehrere Objekte

Eine Auflistung aller Bereiche oder zusammenhängender Zellblöcke innerhalb einer Markierung. Es gibt kein separates Area-Objekt; die einzelnen Elemente der Areas-Auflistung sind Range-Objekte. Die Areas-Auflistung enthält ein Range-Objekt für jeden einzelnen, zusammenhängenden Zellbereich in der Markierung. Wenn die Markierung nur einen Bereich enthält, verfügt die Areas-Auflistung über ein einzelnes Range-Objekt, das dieser Markierung entspricht.

Verwenden der Areas-Auflistung

Verwenden Sie die Areas-Eigenschaft, um die Areas-Auflistung zurückzugeben. Im folgenden Beispiel wird die aktuelle Markierung gelöscht, wenn diese mehrere Bereiche enthält.

If Selection.Areas.Count <> 1 Then Selection.Clear

Verwenden Sie Areas(Index), um ein einzelnes Range-Objekt der Auflistung zurückzugeben. Dabei ist Index die Bereichsindexnummer. Die Indexnummern entsprechen der Reihenfolge, in der die Bereiche markiert wurden. Im folgenden Beispiel wird der erste Bereich in der aktuellen Markierung gelöscht, wenn die Markierung mehrere Bereiche umfasst.

If Selection.Areas.Count <> 1 Then
    Selection.Areas(1).Clear
End If

Einige Vorgänge können nur jeweils in einem Bereich der Markierung ausgeführt werden. In solchen Fällen ist es erforderlich, dass Sie die Bereiche der Markierung in einer Schleife durchlaufen und die Vorgänge in jedem einzelnen Bereich ausführen. Im folgenden Beispiel wird der Vorgang mit dem Namen "Vorgang1" im markierten Bereich ausgeführt, wenn die Markierung nur einen Bereich enthält. Enthält die Markierung mehrere Bereiche, wird im Beispiel der Vorgang1 in jedem einzelnen Bereich der Markierung ausgeführt.

Set rangeToUse = Selection
If rangeToUse.Areas.Count = 1 Then
    myOperation rangeToUse
Else
    For Each singleArea in rangeToUse.Areas
        myOperation singleArea
    Next
End If