Kontakt  Anfahrtplan   Datenschutzerklärung  Impressum Englisch 

Service: Excel-VBA: Suche nach Fehlern in Code (Debuggen)

Die VBA-Entwicklungsumgebung (VBA-IDE) ist extrem benutzerfreundlich und bietet hervorragende Möglichkeiten zur Fehlersuche. Nehmen wir z.B. folgenden Code:

Public Sub Test()

    Dim i As Integer
    i = 120000

End Sub
    

Der Code ist offensichtlich fehlerhaft, weil versucht wird, einer Variablen vom Typ Integer einen Wert grösser als 32767 zuzuweisen.

Das Tolle an der VBA-IDE ist, dass die Code-Ausführung sofort abgebrochen wird und eine Fehlermeldung angezeigt wird, wenn VBA auf eine fehlerhafte Anweisung trifft.

Obwohl Programmieranfänger solche Meldungen naturgemäss irritierend finden, muss man klar sagen, dass diese für die Fehlersuche und Fehlerbeseitigung extrem hilfreich sind.

Nicht nur, dass die Codeausführung genau an der fehlerhaften Stelle angehalten wird, es wird ausserdem eine recht konkrete Fehlerbeschreibung ausgegeben und ein direkter Zugang zur Online-Hilfe (per Hilfe-Schaltfläche) ermöglicht.

Einschränkend muss man allerdings sagen, dass die Fehlerbeschreibungen im Meldungsfenster und (überwiegend) auch in der Online-Hilfe, besonders für einen Programmieranfänger, etwas dürftig sind. Trotzdem: Verglichen mit machn anderen Programmiersprachen, hat VBA hier eine hervorragende Unterstützung zu bieten.


Das obenstehende Beispiel ist natürlich etwas banal und die Fehlerursache ist auch ohne IDE-Unterstützung relativ leicht zu erkennen. Etwas anders sieht es in folgendem Beispiel aus:

Public Sub Test()

    Dim i As Integer
    Dim cl As Range
    For Each cl In Selection
        i = i + cl.Value
    Next

    MsgBox "Summe: " & i

End Sub

Der Programmierer ist davon ausgegangen, dass in den ausgewählten Zellen immer irgendwelche 'kleinen' ganzzahligen Werte stehen. Solange das der Fall ist wird der Code auch funktionieren.

Allerdings können in den Zellen X-beliebige Werte stehen (Texte, Fließkommazahlen, 'große' Ganzzahlen oder auch gar nichts). Der Code ist also extrem fehleranfällig und früher oder später wird der VBA-IDE-Debugger 'zuschlagen' und den Code bei 'i = i + cl.Value' mit einer Fehlermeldung anhalten.

In diesem Falle kann der nächste Debug-Mechanismus der VBA-IDE helfen: Das Überwachungsfenster.

Markiert man, 'cl' im Code-Fenster und wählt den Befehl 'Überwachung hinzufügen' aus dem Menü 'Debuggen', sieht man unter anderem folgendes:

Die Value-Eigenschaft der Zelle ('cl'-Objekt) hat den Wert 'Leer' (und 'Leer' kann einer Integer- Variablen nicht zugewiesen werden).

Darüberhinaus hat man einen vollständigen Zugriff auf alle Eigenschaften der Zelle.

Das funktioniert genauso mit allen anderen Variablen in jedem VBA-Code. Z.B. könnte man auf die gleiche Art das 'Selection'-Objekt untersuchen.



Vielleicht auch interessant für Sie: VBA-Extension Tool.
Produktivitätssteigerung für VBA durch Vereinfachung von Routinearbeiten.

Seitenanfang


Wider dem Blindflug!

Wenn Sie wissen wollen, was so alles auf Ihrem PC passiert!

Lesen Sie dies ...


Einfach - Schnell - Günstig!

Tischrechner als Software.

Jetzt herunterladen und kostenlos testen!

Mehr lesen ...


Effektiver Arbeiten!

Tastenkombinationen können PC-Arbeit erheblich beschleunigen.

Mehr lesen ...


Kleine Helfer für Sie:

Eine Reihe von kostenlosen Online-Berechnungen zur Erleichterung der täglichen Arbeit.

Ausprobieren ...


Wissenswertes!

Sicherheit im PC-Bereich

Es existiert eine kostenlose, einfache und äußert effektive Methode, fast alle Viren, Trojaner, Würmer ...

Mehr lesen ...