Dieser Artikel stellt Methoden vor, um Programme in Excel VBA zu debuggen und die Entwicklungseffizienz zu verbessern. Wir untersuchen die Erstellung und Verwendung von Breakpoints in Excel VBA, Run to cursor, Variablenprüfung und Programmausdrucksüberwachung sowie Trick-Methoden zur virtuellen Nutzung von REPL (interaktive Ausführung).

Entwicklungsmodus und VBA in Excel aktivieren
Bestätigen Sie zunächst, dass der Entwicklermodus aktiviert ist, um den VBA-Editor in Excel zu öffnen.

Wenn es keine Entwickler-Registerkarte gibt, aktivieren Sie den Entwicklungsmodus.
Klicken Sie im Excel-Menübildschirm auf Optionen, um die Einstellungen zu öffnen.

Gehen Sie im Einstellungsoptionsbildschirm zu Menüband anpassen > Entwickler > OK

Zu diesem Zeitpunkt sollte die Entwickler-Registerkarte wie im obigen Bild gezeigt hinzugefügt worden sein.
Klicken Sie auf der Entwickler-Registerkarte auf Code anzeigen, um den VBA-Editor zu öffnen.
Debugging in VBA
Lassen Sie uns nun die Debugging-Prozedur für VBA-Skripte vorstellen.
Als Beispiel verwenden wir den folgenden Beispielcode als VBA-Skript. Öffnen Sie den VBA-Editor und gehen Sie vom Menü oben links zu VBA-Projekt > DieseArbeitsmappe und öffnen Sie den Arbeitsmappen-Editor. (Siehe Bild oben)
Private Sub Workbook_Open()
' MsgBox "Workbook_Open"
Dim data As String
data = "hogehoge"
data = "fugafuga"
Dim dummy As Integer
dummy = 0
End Sub
Kopieren und fügen Sie den obigen Code ein.
Der obige Code kann mit der F5-Taste ausgeführt/gestartet werden. Dieser Code nimmt keine größeren Änderungen vor und definiert, wie Sie sehen können, einfach willkürlich Variablen und beendet sich.
Die Funktion Workbook_Open() schreibt Programme, die automatisch ausgeführt werden, wenn eine Arbeitsmappe neu geöffnet wird.
Wenn Sie beispielsweise ’ MsgBox “Workbook_Open” im obigen Code auskommentieren, damit es ausgeführt wird, wird beim nächsten Öffnen der obigen Excel-Datei ein Meldungsfeld angezeigt.
Wie oben erwähnt, wird dieses Programm auch mit der F5-Taste ausgeführt.
Breakpoint
Durch Setzen von Breakpoints können Sie die Codeausführung an diesem Punkt pausieren und während dieser Zeit Variablenwerte überprüfen oder REPL (interaktive Ausführung) durchführen. Um einen Breakpoint auf einer beliebigen Zeile zu setzen, klicken Sie auf den Leerraum auf der linken Seite der Zeile und bestätigen Sie, dass das rote Kreissymbol umgeschaltet wird. (Siehe Bild oben)
Drücken Sie mit gesetztem Breakpoint die F5-Taste, um das Skript auszuführen.
Run to cursor
Wenn das Programm an einem Breakpoint angehalten wird und Sie die Ausführung fortsetzen, beginnt es von dieser Zeile, wenn Sie nichts tun, aber Sie können die Zeile angeben, von der aus fortgesetzt werden soll, und die Unterbrechung aufheben. Diese Funktion wird Run to cursor oder Jump to cursor genannt.
Mit Run to cursor können Sie effektiv Schleifen erstellen, indem Sie den Code an den Anfang zurückführen, oder mehrere Zeilen am Ende überspringen.
Um die Zeile anzugeben, von der aus mit Run to cursor fortgesetzt werden soll, konzentrieren Sie sich auf das nach rechts zeigende gelbe Pfeilsymbol, das mit dem roten Kreissymbol des Breakpoints zu überlappen scheint. Ziehen Sie dieses gelbe Pfeilsymbol mit Ihrer Maus nach oben oder unten und setzen Sie es auf eine beliebige Zeile. Beachten Sie, dass Run to cursor nicht auf einigen Codes gesetzt werden kann, wie z. B. Dim-Anweisungen, die Variablen definieren.
Variablen überprüfen
Wenn das Programm an einem Breakpoint angehalten wird, können Sie den Wert jeder Variable überprüfen, indem Sie Ihren Mauszeiger über die Variable bewegen.

Überwachung von Variablen und Programmausdrücken/-anweisungen
Von Überwachungen am unteren Bildschirmrand können Sie mit der rechten Maustaste klicken und Überwachung hinzufügen auswählen oder über Debug > Überwachung hinzufügen im Menü oben auf dem Bildschirm Variablen, Ausdrücke und Anweisungsausführung überwachen.

Diese listen die Werte der gesetzten Variablen und Programmausgaben auf, wenn sie ausgeführt werden, während das Programm an einem Breakpoint angehalten ist.
Zum Beispiel sind wir im obigen Bild an einem Breakpoint bei data = “hogehoge” angehalten, also sollte “hogehoge” in der data-Variable gespeichert sein.
Wenn Sie die zur Überwachung hinzugefügte data-Spalte betrachten, können Sie sehen, dass sie wie erwartet “hogehoge” anzeigt.
REPL (Interaktive Ausführung)
REPL steht für interaktive Ausführungsumgebung und bezieht sich auf eine Umgebung, in der Programme interaktiv ausgeführt werden können.
Angenommen, das Programm ist an einem Breakpoint in VBA angehalten und Sie möchten wissen, welche Ausgabe das VBA-Programm CreateObject(“WScript.Shell”).Environment(“process”).Item(“windir”) erzeugt.
Der Punkt ist, dass dies Zeile für Zeile ausgeführt werden kann, wie in der JavaScript-Konsole, was im Wesentlichen möglich ist.
Die spezifische Methode besteht darin, auf das Programm/die Variable einer beliebigen Überwachung in Überwachungen doppelt zu klicken, um sie bearbeitbar zu machen. Wenn Sie hier ein beliebiges Programm eingeben und die Bearbeitung mit der Eingabetaste usw. abschließen, wird das Programmausführungsergebnis sofort auf der rechten Seite ausgegeben.

Dies funktioniert nicht vollständig für Dinge wie das Definieren von Variablen, das Zuweisen zu Variablen oder komplexe Ausdrücke und Blöcke einschließlich Steueranweisungen, und in dieser Hinsicht unterscheidet es sich vom REPL-Debugging in VScode, aber auch unter Berücksichtigung dessen ist es eine sehr wertvolle Funktion.
Zusammenfassung
In diesem Artikel haben wir detailliert vorgestellt, wie man Programme mit Excel VBA debuggt. Hier ist eine Zusammenfassung der Hauptpunkte:
-
Entwicklungsmodus und VBA aktivieren: Um den VBA-Editor in Excel zu verwenden, müssen Sie den Entwicklungsmodus und den VBA-Editor aktivieren. Wir haben die Schritte zum Aktivieren der Entwickler-Registerkarte erklärt.
-
Breakpoints setzen: Durch Setzen von Breakpoints können Sie die Programmausführung pausieren. Wir haben Breakpoints auf bestimmten Zeilen gesetzt und die Codeausführung für detailliertes Debugging pausiert.
-
Run to Cursor: Nach dem Pausieren an einem Breakpoint haben wir erklärt, wie man Run to Cursor verwendet, um zu einer bestimmten Zeile zu wechseln und die Programmausführung fortzusetzen.
-
Variablen überprüfen: Wir haben vorgestellt, wie man Variablenwerte überprüft, wenn das Programm an einem Breakpoint pausiert ist. Sie können den Wert einer Variable anzeigen, indem Sie den Cursor darüber platzieren.
-
Variablenüberwachung und Programmausdrucksüberwachung: Wir haben erklärt, wie man die Überwachungsfunktion verwendet, um bestimmte Variablen und Programmausdruckswerte zu überwachen. Dies ermöglicht es Ihnen, Variablenänderungen während der Programmausführung zu verfolgen.
-
REPL (Interaktive Ausführung): Wir haben vorgestellt, wie man VBA-Programme in einer interaktiven Ausführungsumgebung ausführt. Wir haben gezeigt, dass Sie Teile eines Programms mit dieser Funktion interaktiv testen können.
Durch die Nutzung dieser Debugging-Techniken sollten Sie in der Lage sein, Fehler in Excel VBA-Programmen zu identifizieren und zu beheben und mit effizienter Entwicklung fortzufahren.