Jeder der in VBA eine Anwendung programmiert, sollte diese hinreichend testen bevor es in den „produktiven Betrieb“ geht und diese auf die Menschheit losgelassen wird. Dies macht man überlicher Weise beim Debuggen über Breakpoints, den sogenannten Haltepunkten. Dabei ist es auch üblich Programmcode einzufügen, der Texte und Strings auf einem Konsolenfenster ausgibt. Dieses Konsolenfenster wird in VBA „Direktfenster“ genannt.
Direktfenster im VBA-Editor anzeigen
Damit überhaupt ein String zur Laufzeit der Anwendung angezeigt werden kann, muss man sich das Direktfenster über Ansicht ➥ Direktfenster einblenden lassen oder kurzerhand über die Tastenkombination Strg+G.
Interessanterweise heißt das eingeblendete Fenster nicht „Direktfenster“, sondern „Direktbereich“. Ob dies ein Fehler in der Übersetzung ist oder ob das bewusst so sein soll? Das weiß man nicht so genau. Jedenfalls kann der Direktbereich nun als Debug-Konsole im VBA-Editor verwendet werden.
Debug.Print: Text und Strings im Direktbereich/Debug-Konsole ausgeben
Um nun innerhalb der VBA-Anwendung an bestimmten Stellen einen String zur Kontrolle des Quellcodes auszugeben, verwendet man die Funktion Debug.Print gefolgt von dem gewünschten String oder einer anderen Variable.
Abhängig vom Datentyp muss man ggf. noch eine Konvertierung vornehmen. Die folgenden Code-Beispiel verdeutlichen dies.
Strings mit Debug.Print ausgeben
Strings und Texte lassen sich mit Debug.Print direkt oder direkt als Variable ausgeben.
Private Sub btnDebugPrint_Click()
Dim someText As String
someText = "Ein Beispieltext!"
Debug.Print "Eine von mehreren Ausgaben im Direktfenster!"
Debug.Print someText
End Sub
Integer/Ganzzahl und Datum mit Debug.Print ausgeben
Ganzzahlen vom Typ Integer und Datum vom Typ Date können ebenfalls direkt mit Debug.Print ausgegeben werden. Bei der Datumsausgabe wird dann das aktuelle Gebietsschema für die Formatierung verwendet. Benötigt man ein anderes Datum-Format muss man die Format-Funktion verwenden.
Private Sub btnDebugPrint_Click()
Dim iNumber As Integer
Dim dateToday As Date
iNumber = 23456
dateToday = Date 'Datum von Heute
Debug.Print iNumber
Debug.Print dateToday
End Sub
Gleitkommazahl und Währung mit Debug.Print ausgeben
Möchte man die Datentypen Double oder Currency in der Debug-Konsole ausgeben, dann muss man diese vorher mit der Funktion CStr() in einen String konvertieren, da es sonst zu einer Fehlermeldung kommt. CStr() wandelt den Datentyp in String für die Ausgabe mittels Debug.Print um.
Private Sub btnDebugPrint_Click()
Dim dNumber As Double
Dim curEuro As Currency
dNumber = 2.499
curEuro = CCur(dNumber) 'Umwandlung ins Währungsformat
Debug.Print CStr(dNumber) + " Kilometer"
Debug.Print CStr(curEuro) + " EUR"
End Sub
Fazit
Debug.Print ist im Zusammenhang mit dem Direktfenster oder Direktbereich ein praktisches Werkzeug zur Ausgabe von Werten und Variablen während der Laufzeit einer Anwendung. Damit eignet sich diese Funktion prima zum Debuggen einer VBA-Anwendung.