VBA lernen - Excel 2007/2010 (1)

Auflistungen und weitere Methoden

∅ 4.4 / 13 Bewertungen

Auflistungen und weitere Methoden

Auf dieser Seite

Eine Auflistung ist ein Objekt, mit dem verwandte Objekte gruppiert und verwaltet werden. Über Auflistungen erreichen Sie viele gleiche Objekte, so z. B. eine Tabelle über die Auflistung 'Worksheets'. Auflistungen erkennen Sie am Plural-"s" am Objektbezeichner, z. B. "Worksheets". In der Auflistung befinden sich einzelne Objekte, die über einen numerischen Index oder einen Namen in einem folgenden Klammerpaar ausgewählt werden.

Worksheets("Tabelle1") stellt das Objekt Tabelle1 bereit, Worksheets(1) macht das Objekt "erstes Blatt" der Auflistung verfügbar.

Beim Aufzeichnen wird Ihnen die Auflistung Sheets angeboten; sie enthält sowohl alle Tabellen als auch alle Grafikblätter. Worksheets enthält nur Tabellen.

Aufgabe:

Notieren Sie in MitarbeiterOK.xlsm im Modul1 unter der bereits bestehenden Prozedur:

Sub übung1()
Sheets("Tabelle1").Select ' zeigt und aktiviert Tabelle1
End Sub

Sub übung2()
Worksheets("Tabelle2").Select 'zeigt und aktiviert Tabelle2
End Sub

Sub übung3()
Worksheets.Add 'fügt eine neue Tabelle ein und aktiviert sie
End Sub

Sub übung4()
Worksheets(2).Delete 'Entfernt die 2. Tabelle der Auflistung Worksheets
End Sub

Starten Sie die einzelnen Prozeduren, entweder durch Anklicken und Drücken von <F5> oder über die Arbeitsmappenansicht und den bekannten Makroaufruf.

Im obigen Beispiel werden für das Objekt Worksheet die Methoden Select, Add und Delete angewendet. Ein aktives Objekt ist dasjenige, das mit der nächsten Aktion verändert bzw. auf das zugegriffen wird.

Objekte können untereinander geschachtelt sein. So enthält jeder Bereich Range ein Font-Objekt, dessen Parameter die Formatierung festlegt - Range ("B2:C3").Font... Oder das Sort-Objekt auf eine Tabelle angewandt enthält so genannte SortFields zum Modifizieren der Sortierung ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.
Methoden und Eigenschaften können vielfältige Parameter aufweisen.

Das Aufzeichnen der Sortierung (s. Code der aufgezeichneten Prozedur) ergab u. a. folgende Anweisungen:

  • ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear

    In Tabelle1 der aktiven Arbeitsmappe werden zunächst die dazugehörigen Parameter des Sort-Objekts gelöscht. Das Sort-Objekt definiert den Datenbereichs und die Art und Weise der Sortierung. Die SortFields-Auflistung ist eine Auflistung von Objekten, die das Speichern eines Sortierstatus für Arbeitsmappen, Listen und AutoFilter ermöglichen.

  • ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("E2:E300" _
    ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

    legt für den ersten Sortierbegriff Key:=Range("E2:E300") die Sortierparameter fest.

  • Die Parameter für den zweiten Sortierbegriff lauten:
    ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("D2:D300" _
    ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

  • Das Sortieren wird schließlich durchgeführt:

    With ActiveWorkbook.Worksheets("Tabelle1").Sort

    .SetRange Range("A1:W300") ' Die zu sortierende Liste

    .Header = xlYes ' die erste Zeile der Liste enthält Überschriften

    'Bei der Sortierung soll die Groß-/Kleinschreibung nicht berücksichtigt werden.

    .MatchCase = False

    .Orientation = xlTopToBottom ' Die Sortierrichtung ist aufsteigend.

    .SortMethod = xlPinYin ' nur wichtig für chinesische Sprache

    .Apply ' Wendet das so genannte kopierte Sortierungsformat an.

    End With

Später werden Sie mit der Auflistung CommandBars für eigene Menüs vertraut gemacht.