Do
- Code-Bereich
Option Explicit
Sub Main
Dim I As Integer
Let I = 0
Do While I < 10
Debug.Print I
Let I = I + 1
LoopEnd Sub
Programm unterbrechen
- Code-Bereich
Option Explicit
Sub Main
Do While True: Loop
End Sub
Dieses Programm endet nicht von alleine, da die Zeile "While True: Wend" das Programm anweist, diese Zeile immer wieder zu durchlaufen.
Solch ein „Endlosprogramm“ kann unter einigen Windows-Versionen durch die Eingabe Strg-Pause unterbrochen werden. *Unter anderen Versionen ist dies nicht möglich, und die ganze Anwendung muß beendet werden.)
Es erscheint ein Unterbrechungsdialog, der die Wahlmöglichkeit bietet, das Programm endgültig zu beenden oder es zu testen.
Hier wählen wir "Testen" ("Debuggen"). Nun haben wir die Möglichkeit mehr über den Programmablauf herauszufinden. Links neben dem Programmtext im Kodefenster zeigt ein Pfeil auf die Stelle, an der unser Programm unterbrochen wurde.
Führen wir den Mauspfeil über einen Ausdruck (hier "True"), so erscheint dessen Wert (hier "True = True" oder "True = Wahr"). Durch Eingaben verschiedener Kommandos, die wir später lernen werden, in das Direktfenster können wir alle möglichen Informationen über das unterbrochenen Programm erhalten.
Beim Testen ist das Programm zunächst nur unterbrochen. Es könnte aus diesem Zustand heraus auch noch fortgesetzt werden. Das Programm kann aber in diesem Zustand nicht verändert werden. Auch einige Funktionen der Anwendung, wie z.B. Excel, funktionieren in diesem Zustand nicht.
Um wieder Änderungen am Quelltext des Moduls vornehmen zu können, ist es nötig das Programm vollständig zu beenden. Hierfür kann im Menü "Ausführen" der Eintrag "Zurücksetzen" aktiviert werden. Diese Funktion kann auch mit der quadratischen „Stoptaste“ (einer Tastfläche) ausgeführt werden.
Durch Einbau der Anweisung »DoEvents« in eine Schleife wird das Programm immer wieder unterbrochen, damit die Anwendung Eingaben verarbeiten kann. Dadurch ist es zwar einfacher möglich, eine laufende Schleife zu unterbrechen, aber nun besteht dafür die Möglichkeit, daß der Programmablauf durch die Verarbeitung von Benutzereingaben gestört wird.
- Verlassen
Exit Do
- abweisende While-Wiederholung
Do While ...
...
Loop- nichtabweisende While-Wiederholung
Do
...
Loop While ...- abweisende Until-Wiederholung
Do Until ...
...
Loop- nichtabweisende Until-Wiederholung
Do
...
Loop Until ...
Aufgabenstellung Es soll genau 60mal das Zeichen “x” ausgegeben werden (in den Direktbereich).
Aufgabenstellung Es soll in einem Spiel eine Zahl erraten werden. Der Computer legt eine Zufallszahl im Bereich von 0 bis 99 fest. Der Benutzer kann dann eine Zahl eingeben und erfährt, ob sie größer,kleiner oder gleich der Zufallszahl ist. Das wird solange wiederholt bis der Benutzer die Zahl erraten hat.
Beispiel:
Eingabe: 10
Programm: zu groß!
Eingabe 8
Programm: zu klein!
Eingabe 9