Die For-Next-Schleife in VBA (I)

fornext5 1

Dieser Beitrag behandelt die For-Next-Schleifen. Das Thema wird in zwei Teilen beschrieben.

Schleifen werden in der VBA-Programmierung angewendet, in Excel ist es nicht möglich.

4c62977563c54b3a97b1eeff5ce3c07b

Hast Du schon mal versucht, mit den vorhandenen Excel-Funktionalitäten einen Arbeitsschritt mehrfach hintereinander ausführen zu lassen? Versucht bestimmt schon, aber es wird Dir nicht gelungen sein. Mit VBA kannst Du das.

Schleifen ermöglichen, Programmanweisungen mehrmals hintereinander auszuführen. Du sollst Schritt für Schritt sehen, welche Arten von Schleifen es gibt und was Du damit anfangen kannst. Da gibt es zunächst die Zählschleifen. Bei Zählschleifen wird die Anzahl der Durchläufe durch eine Konstante oder eine Variable festgelegt.

Die erste Art ist die For – Next – Schleife. Sie zählt in der Regel ganzzahlige Variablen hoch oder runter und das in ganzzahligen Schritten.

Ein erstes Beispiel soll das verdeutlichen: Du hast Ganzzahlen von 1 bis 5 und willst hochzählen lassen. Dazu schreibst Du in Deinem Modul folgendes Makro:

Sub ForNext1()
Dim i As Integer
For i=1 To 5
Next i
End Sub

Lässt Du das Makro so laufen, bekommst Du nichts, aber auch gar nichts von der Ausführung mit. Das Makro führt die Schleife sozusagen intern, ohne Kontakt nach außen, aus. Deshalb baust Du Dir eine MsgBox ein, die Dir entweder jeden erreichten Stand oder das Ende des Makros anzeigt.

Sub ForNext2()
Dim i As Integer
For i=1 To 5
MsgBox ‘erreichter Stand
Next i
End Sub

Die MsgBox zeigt nacheinander an: 1, 2, 3, 4, 5, nachfolgende Abbildungen zeigen die Ergebnisse “1” und “5”.

fornext1 1

fornext2 1

Im nächsten Code zeigt die MsgBox erst an, wenn der Endstand von i erreicht ist. Dazu wurde die Codezeile zur MsgBox hinter Next i verschoben.

Sub ForNext3()
Dim i As Integer
For i=1 To 5
Next i
MsgBox (“Der Endstand von i ist erreicht!”)
End Sub

fornext3 1

OK, das war noch ganz einfach. Als nächstes willst Du mal probieren, ob das Makro auch in festgelegten Schritten hochzählen kann. Du legst i jetzt auf 1 bis 11 fest, sonst lohnt es nicht, und willst in 2-Schritten zählen lassen. Mit “Step” kennzeichnest Du im Makro die Schrittfolge.

Sub ForNext4()
Dim i As Integer
For i=1 To 11 Step 2
MsgBox i ‘erreichter Stand
Next i
End Sub

Die MsgBox zeigt nacheinander an: 1, 3, 5, 7, 9, 11.

fornext4 2

fornext5 1

Die Bilder zeigen Schritt 1 und Schritt 2.

Du fragst Dich, ob auch rückwärts gezählt werden kann? Es kann, und zwar so:

Sub ForNext5()
Dim i As Integer
For i=11 To 1 Step -2
MsgBox i
Next i
End Sub

Die MsgBox zeigt jetzt nacheinander an: 11, 9, 7, 5, 3, 1.

Im nächsten Beitrag zu den VBA-Schleifen geht es noch einmal um die For – Next – Schleife.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner