Programme in VBA
»Debug.Print«
Man kann mit dem »?« im Direktbereich einen Text ausgeben.
- Direktbereich
? "Hallo, Welt"
Hallo, Welt
Man kann »?« dabei auch ausführlicher als »Debug.Print« schreiben.
- Direktbereich
Debug.Print "Hallo, Welt"
Hallo, Welt
Für »Debug.Print« gilt alles zuvor für »?« Gesagte, aber nötigenfalls muß ein Leerzeichen eingefügt werden.
- Direktbereich
?RND
0.7055475
- Direktbereich
DEBUG.PRINTRND
Fehler
- Direktbereich
DEBUG.PRINT RND
0.7055475
Programme
Eine Anweisung kann auch zwischen die beiden Verse »Sub Main« und »End Sub« geschrieben werden.
- Ein Programm
Sub Main
Debug.Print "Hallo, Welt"
End Sub
Das enstandene Gebilde nennen wir ein Programm.
Im Code-Fenster ist die Abkürzung von »Debug.Print« mit »?« nicht möglich. Allenfalls könnte man dort »Debug.Print« mit »Debug.?« abkürzen. Die Eingabe kann aber auch durch die automatische Vervollständigung begonnener Kommandos vereinfacht werden, etwa durch Eingabe von »Debug.P↹«.
Programme starten
Um ein Programm zu starten wird der Modulbereich mit F7 fokussiert und das Programm (drei Zeilen) in den Modulbereich eingegeben oder kopiert. Dann wird die Schreibmarke in das Programm positioniert und das Programm mit F5 gestartet. Die Ausgabe erscheint dann weiterhin im Direktbereich.
Das Wort »Debug« in »Debug.Print« steht praktisch für den Direktbereich, in den die Ausgaben geschrieben werden. Das Fragezeichen »?« steht für »Print«, so daß »? 7« im Direktbereich auch als »Print 7« geschrieben werden kann und »Debug.Print« im Codebereich auch als »Debug.?«.
F7 Eingaben zum Code-Fenster leiten
Strg-G Eingaben zum Direktbereich leiten
Da beim Öffnen des Modulbereichs eine Tabelle aktiv war, gehören das von uns eingegebene Programm nur zu dieser Tabelle. Es wird auch mit dieser Tabelle zusammen in der Arbeitsmappe abgespeichert (wenn und falls die Arbeitsmappe abgespeichert wird).
Es ist aber besser, wenn ein Programme der gesamten Arbeitsmappe zugeordnet werden. Damit beschäftigen wir uns im nächsten Abschnitt.
Modul zur Arbeitsmappe hinzufügen
Wenn über das Menü „Einfügen“ in der IDE, ein neues Modul in die aktuelle Arbeitsmappe eingefügt wird, so wird der darin befindliche Code der Arbeitsmappe zugeordnet und mit dieser zusammen gespeichert (falls die Arbeitsmappe als Arbeitsmappe mit Makros (.xlsm) abgespeichert wird).
Wenn man mit Strg-F6 zwischen mehreren geöffneten Modul-Fenstern wechselt, sieht man im Titel des Hauptfensters und im Projekt-Explorer Angaben zur Identifikation des aktuelle Modulfenster. Es ist wichtig, zu wissen, in welches Modulfenster man schreibt. Wir wollen hier bis auf weiteres immer mit dem Modul der Arbeitsmappe arbeiten.
Strg-R öffnet den Projekt-Explorer, der die verschiedenen Teile der Arbeitsmappe in einer hierarchischen Ansicht anzeigt.
Programme mit mehreren Anweisungen
Vor oder hinter eine Anweisung dürfen im Programm weitere Anweisungen eingefügt werden. Alle Anweisungen werden dann hintereinander ausgeführt, wenn der Code mit F5 gestartet wird.
- Beispiel
Sub Main
Debug.Print "Alpha"
Debug.Print "Beta"
Debug.Print "Gamma"End Sub
- Direktbereich
Alpha
Beta
Gamma- Beispiel
Sub Main
Debug.Print "Alpha"
Debug.Print "Beta";
Debug.Print "Gamma"
Debug.Print "Delta" : Debug.Print "Epsilon"
Debug.Print "Zeta"End Sub
- Direktbereich
Alpha
BetaGamma
Delta
Epsilon
Zeta
Programme ohne Anweisungen
Es ist auch erlaubt einzelne Anweisungen zu verändern oder zu löschen (bis hin zu dem Punkt, an dem das Programm gar keine Anweisungen mehr enthält).
Verfolgung des Ablaufs
Mit F8 kann das Programm in einzelnen Schritten abgearbeitet werden. Dabei befindet es sich im Haltemodus, der an dem Wort „Unterbrechen“ in der Titelzeile des Hauptfensters erkennbar ist.
Durch Anwählen von „Zurücksetzen“ im Ausführen-Menü kann man wieder in den Entwurfsmodus zurückkehren. (Im Haltemodus kann oft nicht normal mit der Anwendung oder dem VBE gearbeitet werden.)
Mehrere Programme in einem Modul
Man kann mehrere Programme in ein Modul schreiben.
- Modul1
Sub Main
Debug.Print ": Main"
End Sub
Sub Main1
Debug.Print ": Main1"
End Sub
Sub Other
Debug.Print ": Other"
End Sub
Ein Programm kann dann mit F5 gestartet werden, wenn sich die Schreibmarke darin befindet.
Das Programm kann auch über seinen Namen aus dem Direktbereich gestartet werden.
- Direktbereich
Main
: Main
Der Modulname kann vorangestellt werden.
- Direktbereich
Modul1.Main
: Main
Der Projektname kann vorangestellt werden.
- Direktbereich
Project.Modul1.Main
: Main
Starten eines Programmes aus der Anwendung heraus
Mit Alt-F8 kann ein Programm (wie „Main“) aus der Anwendung heraus gestartet werden.
Kompilieren
Durch das Kommando Kompilieren im Debuggen-Menü des VBEs kann nach VBA -Fehlern im gesamten Projekt gesucht werden. (Einige Fehler werden schon bei der Eingabe entdeckt, andere erst während des Programmablaufs, wenn das Programm an die fehlerhafte Stelle gelangt, aber dazwischen gibt es noch einige Fehler, die nicht schon bei der Eingabe aber durch das Debuggen gefunden werden.)