VBA: Ausgabe auf Konsole zum Debuggen

VBA - Visual Basic for Application

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.

Screenshot VBA Menü Ansicht Direktfenster zum Anzeigen des Direktbereichs
Fenster Direktbereich wird über Ansicht => Direktfenster angezeigt

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.

Screenshot VBA-Code und Direktfenster mit Debug.Print-Ausgaben
Beispiel-Code mit Ausgabe verschiedener Debug.Print

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.

Bestseller Nr. 1
Bestseller Nr. 2

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert