Excel 2013 VBA Grundkurs

For/Next-Schleife

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die For/Next-Schleife zählt eine Variable von einem Anfangs- bis zu einem Endwert und kann in ihrem Verlauf entsprechend viele Aktionen durchführen. Sie ist sozusagen die Standard-Schleifenkonstruktion.

Transkript

Wenn Sie eine Aktion mehrfach wiederholen wollen, oder alternativ mehrere Objekte gleich behandeln wollen, dann brauchen Sie eine Schleife. Wenn Sie wissen, wie viele Objekte das sind, dann brauchen Sie eine For/Next-Schleife. Fangen wir also mit einem ganz einfachen Beispiel an, wo zehn Zeilen in das Direktfenster geschrieben werden. Deswegen nenne ich das jetzt Sub ZehnZeilen. Eine For/Next-Schleife braucht immer eine Zähler-Variable. In den meisten Fällen würde Integer reichen. Also, hier würde auch Byte reichen, das ist jetzt eher Gewohnheit, Dim intZaehler As Integer. Und dann kann ich schreiben For Variable, intZaehler gleich Startwert, To Endwert. Und damit ich es nicht vergesse, ein Next, das was sonst Sub, End Sub heißt, heißt nicht etwa For und End For, sondern For und Next. Das ist also das End, auch wenn es ein bisschen unglücklich formuliert ist. Und in dieser Schleife wird damit Debug.Print einfach ausgegeben. Zeile Nummer, also verkettet mit intZaehler und mit Strg + Leertaste verlängern. Soweit, so einfach, das Ganze können wir ja mal speichern. Und weil hier zehn Zeilen auftauchen werden, das ein bisschen größer. Wenn ich das jetzt mit F5 laufen lasse, steht hier einfach Zeile 1 bis 10. Die läuft also exakt zehnmal durch, und deswegen ist sie endlich, weil ich hier schon voraussagen kann, wie oft sie auftaucht. Das gilt auch dann, wenn ich nicht selber die Zahl reinschreibe, sondern jemanden frage. Das trifft vor allem die Auflistungsobjekte, mit denen wir uns noch ein bisschen ausführlicher beschäftigen werden, aber die ich hier schon mal brauche. Eines der typischen Auflistungsobjekte ist z.B. eine Tabelle. Ich gehe mal mit Alt + F11 in die normale Excel-Ansicht. Und Sie sehen da ist hier exakt eine Tabelle. Das ist tenentiell ein bisschen wenig, ich werde jetzt hier also einfach mal völlig beliebig ein paar Tabellen reinmachen. Und ein Paar davon auch umbenennen. Und möchte im Code diese Tabellen auflisten. Also, mit Alt + F11 wieder zurück. Sub AlleTabellen. Dazu brauche ich wieder einen Zähler. Den können wir sogar ganz platt von da oben kopieren. Und jetzt kommt die Schleife. Fängt wieder genauso an For intZaehler gleich Startwert. Da muss man schon aufpassen, Aufzählung belieben auch schon mal bei Null zu starten. In Excel erstaunlich viele bei Eins, in VBA typischerweise eigentlich alle bei Null. Aber diese weiß ich jetzt, beginnt bei 1, To und jetzt muss ich den Endwert nennen. Das ist das Problem, wen frage ich jetzt. Ich muss es einfach jetzt so vorgeben. Von dem ActiveWorkbook, das ist die Datei, die gerade offen ist, gibt es eine Auflistung aller Worksheets und die kennt eine Count-Eigenschaft. Damit werden wir uns noch genauer beschäftigen in Zusammenhang mit der Aufzählung. Also, dieses Konstrukt hier enthält eine Zahl. In meinem Fall muss ich eben nachgucken, muss ich aber gar nicht rüber, es können wir hier auch zählen. In diesem Fall die Zahl 5. Das weiß ich nicht zur Programmierzeit, aber zur Laufzeit ist da eine Zahl drin. Und damit ich es nicht vergesse, schreibe ich das Next schon mal hin. Und jetzt kann ich nach Herzenslust mein Debug wieder einfügen. Also, Debug.Print und da schreibe ich jetzt Tabelle und den Zähler. Und wenn wir schon dabei sind, können wir auch schon mal direkt erwähnen wie die heißt. Das ist jetzt wieder ein bisschen umständlich, weil Sie die Auflistungen noch nicht kennen, also basierend auf dem ActiveWorkbook, die Datei, die offen ist. Alle Worksheets und davon das jenige mit dem intZaehler das so und sovielste. Und das hat (da klappt jetzt die Liste nicht mehr aus, aber ich weiß es) eine Name-Eigenschaft. Und wenn ich mich jetzt nicht verschrieben habe. Das können wir da oben testen, Debuggen Kompilieren und speichern. Dann finden Sie jetzt hier eine Liste, mit F5, aller Tabellen. Und Sie sehen, dass hier jeweils in Klammern, wie sie in Excel in der Tabellenansicht benannt sind, das ist ein interner Name. Da sehen Sie jetzt hier also entsprechend die Benennung. Hat wunderbar funktioniert und diese Version ist eigentlich das, wo ein For/Next normalerweise eingesetzt wird. Sie haben eine Auflistung und können jemand fragen und behandeln dessen Objekte.

Excel 2013 VBA Grundkurs

Holen Sie aus Excel 2013 mit der integrierten Programmiersprache VBA auch das letzte Quäntchen an Funktion heraus und lassen Sie sich dazu zeigen, was alles möglich ist.

6 Std. 18 min (63 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!