Visual Basic for Applications Grundlagen: Die For … Next-Schleife

Nicht nur im Fernsehen, auch beim Programmieren kommen Wiederholungen vor. Dazu wird der For … Next-Befehl verwendet. Damit lassen sich auf sehr einfache Art Programmteile immer wiederholen. Die Syntax des Befehls sieht so aus:

For Zählervariable = Startwert To Endwert [Step Inkrement]

VBABefehle

Next [Zählervariable]

Die Befehle zwischen For und Next werden solange ausgeführt, bis die Zählervariable, die mit dem Startwert initialisiert wird, den Endwert angenommen hat. Die Zählervariable wird durch das Ausführen des Next-Befehls um den unter Inkrement festgelegten Wert verändert. Falls Sie keinen Wert für Inkrement angeben, wird beim Ausführen des Next-Befehls dieZählervariable um Eins erhöht. Die Zählervariable muß dem Next-Befehl nicht unbedingt folgen, sie erhöht aber die Lesbarkeit und Übersicht des Programmlistings.

Sie müssen bei der Programmierung von For … Next-Schleifen darauf achten, daß die Zählervariable auch eine Chance hat, vom Startwert zum Endwert zu gelangen. Sollte zum Beispiel der Startwert höher sein als der Endwert, muß das Inkrement negativ werden. Ein Beispiel:

For i = 10 to 0 Step –1

Hier ist das Inkrement negativ. Als Inkrement dürfen nur ganze Zahlen angegeben werden, es ist zum Beispiel nicht erlaubt Step -0.5 festzulegen.

For … Next-Schleifen können auch verschachtelt werden. Sie legen also innerhalb einer For … Next-Schleife eine weitere For … Next-Schleife an. Der folgende kurze Makro-Programmausschnitt weist allen Elementen des Datenfelds Tabelle den Wert 0 zu.

Dim Tabelle(0 to 7, 0 to 15)    As Integer ‘Tabelle mit 8 Zeilen und 16 Spalten

For Zeilen =  0 To 7    ‘Schleife 8 mal durchlaufen

For Spalten = 0 to 15 ‘Schleife 16 mal durchlaufen

Tabelle(Zeilen, Spalten) = 0 ‘dem Element 0 zuweisen

Next Spalten          ‘Spalten = Spalten + 1

Next Zeilen             ‘Zeilen = Zeilen + 1

Zuerst wird allen 16 Elementen der Zeile 0 die Null zugewiesen. Dies geschieht durch die innere For … Next-Schleife. Ist die innere Schleife abgearbeitet, dann wird der Zeilenzähler um Eins erhöht und den 16 Elementen der Zeile 1 wird die Null zugewiesen usw. Die Schleifen werden solange durchlaufen bis alle 8 Zeilen mit den jeweils 16 Elementen zu Null gesetzt sind.

Die mobile Version verlassen