Der Link aus Antwort 8 ist sehr schön. Der gute Mann gibt gute Ratschläge :o)
www.online-excel.de/excel/singsel_vba.php?f=144
Fehlerbehandlung gehört sicherlich zu den ungeliebten Kindern von VBA. Es bedeutet Arbeit und man sieht nicht wirklich was dabei herauskommen. Dabei ist gute Programmierung ohne Fehlerbehandlung nicht vorstellbar.
Soviel zur Ablehnung einer ordentlichen Fehlerbehandlung.
Sollten Sie zu der Spezies gehören, die meint, 100 % sicheren Code auf allen Rechnern in jeder Umgebung zu produzieren, dann müssen Sie jetzt nicht weiterlesen, sondern sollten sich schnellstmöglich patentieren lassen.
Na dann mal los ;o)
Auch ein schöner Satz vom Autor:
Alle Fehler die auftauchen können, weiß nur der VBA Teufel und selbst der kennt nicht alle.
Beverly kennt sie alle ;o)
Noch eine Bemerkung zu:
Jeder gute Programmierer bevorzugt die Verwendung von If- und Case-Anweisungen und bei stukturierter Programmierung, bleibt der Code auch völlig übersichtlich, im Gegensatz zu Sprunganweisungen, aber das sollte man als Programmierer eigentlich wissen.
Das ist natürlich korrekt. Sprunganweisungen im normalen Code sind Bäh! und erinnern am Batch-Frickelei. Zur Behandlung von unerwarteten Laufzeitfehlern in VBA aber wohl unverzichtbar.
Wer kennt und liebt sie nicht, die für den Anwender nichtssagenden Meldungen wie "Laufzeitfehler XXX, Die Methode Y für Objekt Z ist fehlgeschlagen, Beenden? Debuggen?" und danach hängt das schöne Makromodul irgendwo im "Nichts".
Danke, "vorausschauender" Programmierer. Wozu gibts eigentlich das Err-Objekt?
Klar, für einfache Makros und übersichtliche Sachen muß man da keine Wissenschaft draus machen. Für den "Eigenbedarf" in Makros muß man sich nicht unbedingt damit befassen. Ist meistens Overkill.
Aber für professionelle Projekte sind die Unwägbarkeiten der verschiedenen Umgebungen kontrolliert abzufangen.Oder man ist man eben kein "richtiger Programmierer.
(ich bin übrigens auch keiner, sondern Sysadmin, der eher Scripte für den täglichen Bedarf frickelt)
Die Möglichkeiten des Errorhandling in VBA sind zwar nicht dolle (kein Try-Except oder Catch o.ä. wie in "richtigen" Programmiersprachen, hey das gibts sogar in der Powershell ;o) aber sinnlos sind sie nicht. Wieso sollte für VBA nicht gelten, was für ALLE anderen Programmiersprachen gilt?
mfg, Massarakasch