Tutorial Bibliothek
Debugging und Konsolen-Ausgabe
Debugging
- Debuggen bedeutet, dass ein Programm auf Fehler getestet wird und die Fehler beseitigt werden. Dazu kann es hilfreich sein, dass ein Programm nicht komplett durchläuft, sondern nur bis zu bestimmten Punkten oder sogar nur schrittweise bzw. Zeile für Zeile, um Fehler besser identifizieren zu können
- Schrittweises Durchlaufen des Codes ist möglich, indem man das Makro mit der Taste [F8] startet. Durch Erneutes Drücken wird die nächste Zeile abgearbeitet
- Durchlaufen des Codes bis zu einem gesetzten Haltepunkt: Mit der Taste [F9] wird ein Haltepunkt an der Stelle gesetzt, an der sich gerade der Cursor befindet. Alternativ kann man auch einfach links neben die Codezeile mit der Maus hineinklicken
Konsolen-Ausgabe mit Debug.Print
- Verwendung der Konsole bzw. des Direktfensters, um sich Zwischenergebnisse oder Inhalte ausgeben zu lassen, die während der Laufzeit des Programms erzeugt werden über die Anweisung Debug.Print
- Generell hilft das Direktfenster bei der Ermittlung von Fehlern sehr gut, da man an jeder beliebigen Zeile im Code über Debug.Print Informationen abrufen kann
- Die Ausgabe kann z.B. ein Text sein, der Inhalt einer Zelle in Excel, das Erbebnis einer Berechnung, der Wert einer Variablen etc…
- Anzeigen des Direktfensters im VBA-Editor über Menü/Ansicht/Direktfenster oder Shortcut [STRG+G]
- Beispiele
1 2 3 4 5 |
Sub HalloWelt() Debug.Print "Hallo Welt" End Sub |
1 2 3 4 5 6 7 8 9 10 |
Sub Debugger() Debug.Print Tabelle1.Range("A1").Value Debug.Print Tabelle1.Range("A2").Value Debug.Print Tabelle1.Range("A3").Value 'Schreibt im Direktfenster untereinander den Zelleninhalt von A1, A2 und A3 End Sub |
Konsolen-Ausgabe ohne Programm-Durchlauf
- Es können auch Informationen über das Direktfenster ausgegeben werden, wenn das Programm nicht läuft
- Dies können z.B. sog. Umgebungsvariablen, Zelleninhalte von Excel oder Rückgabe von Formeln sein.
- Merkmal dieser Art von Konsolen-Ausgabe ist ein vorangestelltes Fragezeichen
- Beispiele
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
?Activecell.Value 'Gibt den Wert/Zelleninhalt der aktuellen Zelle aus ?Activecell.Formula 'Gibt den Die Formel der aktuellen Zelle aus ?activecell.text 'Gibt den Textinhalt der aktuellen Zelle aus ?Environ("username") 'Umgebungsvariable: Ermittelt den angemeldeten Benutzer ?Activecell.Address 'Gibt die Koordinate einer Zelle aus ?Environ("computername") 'Umgebungsvariable: Ermittelt den angemeldeten Computer |
Shortcuts
- Strg + Leertaste = Autovervollständigen von z.B. Tabellennamen etc… beim Programmieren im Codefenster
- Strg + Pause = Unterbrechen des Makros
- Strg + G = Direktfenster anzeigen
- F1 = Hilfefunktion aufrufen, wenn zuvor eine Eigenschaft oder Methode im Quelltext markiert wurde (MSDN Library muss installiert sein)
- F2 = Objektkatalog anzeigen
- F5 = Das Makro wird von Anfang bis Ende ausgeführt
- F7 = Codefenster anzeigen
- F8 = Das Makro wird schrittweise ausgeführt
- F9 = Haltepunkt für das Makro
Artikel kommentieren / Fragen stellen
0 Comments