Mit sogenannten „Jumpmarks" können Sie die Stabilität Ihres Codes erhöhen. Sehen Sie sich folgende Linien an:

Sub Test()
Dim whatever as Nothing
On Error GoTo ErrHndler
BeginCommandGroup "Error Handling"
 ....
Ihr Code
GoAheadAndFinish:
ActiveDocument.EndCommandGroup
ActiveDocument.ActiveWindow.Refresh
Exit Sub
ErrHndler:
MsgBox "Error occured: " & Err.Description
Err.Clear
Resume GoAheadAndFinish
End Sub

Die Anweisung On Error GoTo ErrHndler teilt der VBA-Anwendung mit, den Code von oben nach unten auszuführen und bei Auftreten eines Fehlers, direkt zur Jumpmark ErrHndler zu springen (also alles zwischen dieser Anweisung und der Jumpmark zu überspringen). Die Jumpmark wird am Ende mit einem Doppelpunkt gekennzeichnet, damit VBA weiß, wie sie zu behandeln ist. Die Ausführung des Codes wird nun unter der Jumpmark fortgesetzt. In einem Fenster wird eine Fehlermeldung angezeigt und der Fehler wird beseitigt. Danach wird mit GoAheadAndFinish, einer zweiten Jumpmark, die Anweisung gegeben, den Code weiter auszuführen. Wenn Sie mit F8 Linie für Linie durch den Code schreiten, werden Sie sehen, dass die Ausführung nun über der Fehlerbehandlung fortgesetzt wird, die Anweisung CommandGroup (siehe VBA-Makro-Tipp Nr. 1) beendet, das Fenster aktualisiert und schließlich der gesamte Vorgang alternativ mit Exit Sub beendet wird (exakt dieselbe Methode kann auch mit Funktionen verwendet werden).

Diese Methode hat einen einfachen Vorteil: Wenn kein Fehler auftritt, wird der Code linear von oben nach unten ausgeführt und die Jumpmarks werden ignoriert. Das heißt, der Vorgang wird mit Exit Sub anstelle von End Sub beendet und die Fehlerbehandlung nicht ausgeführt, also genau das, was wir möchten. Diese Fehlerbehandlung ist praktisch und sogar nötig, wenn Sie Ihren Code mit CommandGroup-Anweisungen beschleunigen, da sie die Stabilität erhöht.


Tipp von Maurice Beumers, CorelDRAW-Meister, Grafikdesigner und Illustrator.