Schleifen in VBA

Wenn Sie in VBA einen Vorgang mehr als einmal durchführen möchten, verwenden Sie dazu eine sogenannte Schleife. Davon gibt es verschiedene Arten: Eine wird entsprechend einer vorgegebenen Anzahl durchlaufen, andere bis zum Eintreten einer bestimmten Bedingung. Dieser Artikel stellt die verschiedenen Schleifenarten vor.

Schleifen

Grundsätzlich sind Schleifen Code-Konstrukte und ähneln vom Aufbau her den VBA-Routinen. Sie besitzen einen Schleifenkopf und eine abschließende Anweisung, die allerdings in diesem Fall nur das Ende eines Durchlaufs der Anweisungen innerhalb der Schleife bedeutet.

Beispiele

Die Beispiele dieses Artikels finden Sie im Modul mdlSchleifen der Beispieldatenbank Access_Basics_2011_04.mdb.

For…Next-Schleife

Die For…Next-Schleife zeichnet sich dadurch aus, dass zu Beginn festgelegt wird, wie oft die enthaltenen Anweisungen durchlaufen werden.

Um nachzuhalten, wie oft die Anweisungen innerhalb der Schleife bereits durchlaufen wurden, wird eine sogenannte Laufvariable verwendet, die meistens i genannt wird.

Die erste Zeile der For…Next-Schleife enthält außerdem noch den ersten und den letzten Wert sowie gegebenfalls eine Schrittweite. Die Standardschrittweite lautet 1. Man gibt nur in Ausnahmefällen eine alternative Schrittweite an – dazu später mehr.

Die letzte Zeile einer For…Next-Schleife enthält lediglich das Next-Schlüsselwort und optional den Namen der Laufvariable (dies dient ausschließlich der übersicht). Insgesamt sieht eine For…Next-Schleife, die beispielsweise mit den Werten von 1 bis 10 für die Variable i durchlaufen werden soll, wie folgt aus:

Dim i As Integer
For i = 1 To 10
     Debug.Print i
Next i

Innerhalb der For…Next-Schleife wird der Wert von i im Direktfenster ausgeben. Dort erscheinen beim Aufrufen der Prozedur ForNext_I des Moduls mdlSchleifen der Beispieldatenbank also die Zahlen von 1 bis 10. Der Ablauf der For…Next-Schleife wird auch vom Flussdiagramm in Bild 1 skizziert. Die Schleife startet mit dem Wert 1 für die Variable i.

Flussdiagramm für eine For...Next-Schleife

Bild 1: Flussdiagramm für eine For…Next-Schleife

Enthält i einen Wert kleiner oder gleich dem Endwert der Schleife, werden die Anweisungen des Schleifenkörpers ausgeführt und i um eins erhöht.

Monate ausgeben

Die Laufvariable können Sie gleich sinnvoll nutzen. Das folgende Beispiel durchläuft etwa die Zahlen von 1 bis 12 und gibt die entsprechenden Monatsnamen aus:

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →