1.3Makros testen
Im Verlaufe der Programmierung wird es nicht ausbleiben, dass Fehler auftreten. Wichtig ist aber immer zu wissen, wie weit das Programm lief und vor allem, ob es bis zum Fehler richtig lief.
1.3.1Das Direktfenster
Das wichtigste Testelement ist das Direktfenster. Sie können beispielsweise bestimmte Inhalte von Variablen, die Sie im nächsten Kapitel kennenlernen werden, im Direktfenster ausgeben. Die Anweisung, um beispielsweise den Namen der aktiven Tabelle im Direktfenster zu ermitteln, lautet:
Sub DirektfensterAnsprechen()
Debug.Print ActiveSheet.Name
End Sub
Listing 1.2Das Direktfenster ansprechen
Bevor Sie dieses Makro ausführen, blenden Sie das Direktfenster ein, indem Sie die Tastenkombination (Strg) + (G) drücken.
1.3.2Das Überwachungsfenster
Eine besonders wertvolle Funktion können Sie einsetzen, indem Sie das Überwachungsfenster einblenden. Wählen Sie dazu aus dem Menü Ansicht den Befehl Überwachungsfenster. Sie haben jetzt beispielsweise die Möglichkeit, zu überprüfen, wann sich eine bestimmte Variable ändert. Genau dann soll der Makroablauf unterbrochen werden.
So können Sie zum Beispiel eine Schleife mehrmals durchlaufen lassen und die Zwischenergebnisse einer Variablen kontrollieren.
Um eine Variable zu überwachen, befolgen Sie die nächsten Schritte:
Wählen Sie aus dem Menü Debuggen den Befehl Überwachung hinzufügen.
Geben Sie im Feld Ausdruck die Variable an, die Sie überwachen möchten.
Aktivieren Sie die Option Unterbrechen, wenn Wert geändert wurde.
Bestätigen Sie Ihre Einstellungen mit OK.
Wenn Sie das Überwachungsfenster einblenden und dann ein Makro mit eingestellter Überwachung starten, dann können Sie die Änderung an einer überwachten Variablen erkennen und sehr gut kontrollieren.
1.3.3Das Lokal-Fenster
Das Lokal-Fenster wird in der Entwicklungsumgebung standardmäßig nicht angezeigt. Über das Menü Ansicht können Sie dieses Fenster jedoch einblenden. Das Lokal-Fenster zeigt alle deklarierten Variablen in der aktuellen Prozedur und deren Werte an. Sie haben daher die Möglichkeit, die Werte von Variablen übersichtlich zu prüfen.
1.3.4Code Schritt für Schritt durchlaufen lassen
Eine weitere Möglichkeit der Fehlersuche in Excel ist es, das Makro Zeile für Zeile abzuarbeiten. Dabei gehen Sie folgendermaßen vor:
Setzen Sie den Mauszeiger in die erste Zeile des Makros.
Drücken Sie die Taste (F8). Alternativ dazu können Sie ebenso den Menübefehl Debuggen • Einzelschritt wählen. Das Makro hält nun nach jedem Befehl an. Sie können dann prüfen, ob das Makro auch das Gewünschte ausführt, indem Sie die Entwicklungsumgebung kurzfristig verlassen und auf Ihrem Tabellenblatt die Ergebnisse kontrollieren.
1.3.5Haltepunkte setzen
Wenn Sie ein Makro starten, das einen Haltepunkt aufweist, dann stoppt es genau an diesem Haltepunkt. Hiermit können Sie Programmzwischenstände prüfen.
Einen Haltepunkt können Sie setzen, indem Sie den Mauszeiger in die gewünschte Zeile im Makro setzen und die Taste (F9) drücken. Dadurch wird die Zeile standardmäßig mit der Hintergrundfarbe Braun hinterlegt. Wenn Sie jetzt das Makro über die Taste (F5) starten, wird es bis zum Haltepunkt abgearbeitet und stoppt dann. Die Zeile mit dem Haltepunkt wird hervorgehoben, und Sie können die Zwischenstände kontrollieren und anschließend mit der Taste (F5) die Verarbeitung des Makros fortsetzen oder das Makro abbrechen, indem Sie aus dem Menü Ausführen den Befehl Zurücksetzen auswählen.
1.3.6Kommentare im Code hinterlegen
Hinterlegen Sie bitte ausreichend Kommentare in Ihren Makros. Es fällt Ihnen dadurch später leichter, die einzelnen Befehle nachzuvollziehen. Auch Änderungen am Makro selbst können Sie auf diese Art und Weise festhalten.
Einen Kommentar fügen Sie ein, indem Sie ein einfaches Anführungszeichen vor den auszukommentierenden Befehl oder Text eingeben. Die Befehlszeile nimmt dann standardmäßig die Schriftfarbe Grün an. Diese so kommentierten Zeilen werden beim Makrolauf nicht ausgewertet. Sie können ganze Kommentarzeilen anlegen oder auch innerhalb einer Zeile am Ende einen Kommentar anfügen.
Wenn Sie ganze Blöcke schnell auskommentieren möchten, dann können Sie dies recht elegant über die Symbolleiste Bearbeiten ausführen, die Sie über den Menübefehl Ansicht • Symbolleiste • Bearbeiten einblenden. Markieren Sie danach den kompletten Codeblock, den Sie auf diese Weise deaktivieren möchten, und klicken Sie in der Symbolleiste Bearbeiten auf das Symbol Block auskommentieren.
Möchten Sie hingegen einzelne Zeilen oder auch einen ganzen Block wieder aktivieren, dann markieren Sie die entsprechende(n) Zeile(n) und klicken auf das Symbol Auskommentierung des Blocks aufheben.
1.3.7Einzüge vergrößern oder verkleinern
Um den Programmcode leichter lesbar zu machen, können Sie einzelne Befehle oder gar ganze Blöcke im Quellcode einrücken. Auf der Symbolleiste Bearbeiten finden Sie die beiden Symbole Einzug vergrössern bzw. Einzug verkleinern. Mit dieser Funktion rücken Sie einzelne Zeilen oder auch mehrere Zeilen auf einmal nach links bzw. wieder nach rechts ein.
1.3.8Befehle in der nächsten Zeile fortsetzen
Selbstverständlich können Sie längere Befehlsketten in einer Zeile eingeben. Der Nachteil daran ist, dass Sie irgendwann so weit nach rechts scrollen müssen, dass Sie den Anfang der Zeile nicht mehr sehen. Hier empfiehlt sich, über ein Trennzeichen dem Editor mitzuteilen, dass der Befehl in der nächsten Zeile weitergeht.
Auch hier leistet die automatische Syntaxprüfung in Excel hervorragende Hilfe, denn nicht jeder Befehl lässt sich an einer beliebigen Stelle trennen.
Abbildung 1.6Einen Befehl in der nächsten Zeile fortsetzen
Um einen Befehl in der nächsten Zeile fortzusetzen, verfahren Sie wie folgt:
Drücken Sie am Ende der Zeile zunächst die Leertaste, und geben Sie anschließend das Unterstrich-Zeichen »_« ein. Damit weiß der Editor, dass der Befehl in der nächsten Zeile fortgesetzt werden muss.
Schreiben Sie in der nächsten Zeile weiter.
Analog dazu können Sie auch mehrere Befehle in eine Zelle setzen, wenn sie recht kurz sind. Sehen Sie sich dazu das Makro aus Listing 1.3 an:
Sub MehrereBefehleInEineZeile()
Dim i As Integer: i = 1
MsgBox i
End Sub
Listing 1.3Mehrere Befehle in einer Zelle unterbringen
Die Deklaration der Variablen i sowie die Vorbelegung dieser Variablen können beispielsweise in einer Zeile erfolgen, um etwas Platz nach unten zu sparen. Dabei werden die beiden Anweisungen durch den Doppelpunkt voneinander getrennt.
Wenn Sie im Direktfenster einige Befehle übersichtlich nebeneinander eingeben möchten, dann lautet die Syntax dafür wie in Abbildung 1.7 gezeigt.
Abbildung 1.7Mehrere Befehle in das Direktfenster schreiben
1.3.9Suchen und Ersetzen
Genau wie Sie es auch aus anderen Programmen her kennen, gibt es in der Entwicklungsumgebung von Excel eine Möglichkeit, Textteile zu finden und zu ersetzen. Dabei können Sie bestimmte Texte oder Befehle nicht nur im aktuellen Modul, sondern auch in allen Modulen des Projekts suchen. Aufrufen können Sie diese Funktion über drei Wege:
Klicken Sie auf das Symbol Suchen in der Symbolleiste Voreinstellung.
Alternativ dazu drücken Sie die Tastenkombination (Strg) + (F).
Wählen Sie aus dem Menü Bearbeiten den Befehl Suchen aus.
Bei allen drei Varianten wird das Dialogfeld Suchen angezeigt.
Abbildung 1.8Der »Suchen«-Dialog für eine komfortable Suche
Im Feld Suchen nach geben Sie den Befehl bzw. den Text ein, nach dem Sie suchen möchten. Im Gruppenfeld Suchen in haben Sie die Möglichkeit, Ihre Suche über Ihr aktuelles Modul hinaus auszudehnen. Standardmäßig unterscheidet Excel nicht zwischen Groß- und...