Softwaregüte und VBA


Gibt es bei VBA im Hinblick auf die Softwarequalität besondere Dinge zu berücksichtigen, welche in anderen Programmiersprachen nicht relevant sind?

Ja, die gibt es. Wir können diese besonderen Probleme vor allem an zwei Dingen festmachen:

 

 

VBA ist nicht die ideale Programmiersprache

 

VBA ist keine Sprache aus der Retorte, sondern eine gewachsene Sprache, die über Generationen von Office-Paketen immer wieder erweitert und verändert worden ist. Deshalb sind in VBA Sprachelemente enthalten, die ganz unterschiedliche Philosophien der Programmierung verkörpern. Am Anfang versuchte man, es dem Programmierer so leicht wie möglich zu machen. Man wollt ihm nicht einmal den Zwang zu präzisem Ausdruck auferlegen, ja machte ihm sogar einen solchen präzisen Ausdruck unmöglich (die Benutzung desselben Symbols für Zuweisung und Gleichheitsprüfung ist ein besonders krasses Beispiel dafür). Später kam dann mehr Präzision in die Sprache, aber die Relikte der Anfangszeit sind aus Rücksicht auf die Kompatibilität geblieben. Die alten Programme sollen auch auf den neuen Office-Versionen noch funktionieren.

 

 

Interaktion mit Office

 

Der einzige Grund, mit VBA zu arbeiten, ist die Nutzung der mächtigen Ressourcen von Office. Diese Nutzung hat jedoch bedeutsame Konsequenzen:

  • Der Entwickler gestaltet sein System von zwei Enden her: durch VBA-Programmierung und durch menügesteuerte Festlegungen in Office. Er muss in beiden Bereichen gestalten, beide Bereiche aufeinander abstimmen, und er muss in seiner Dokumentation beide Bereiche berücksichtigen.
  • Der Zustand von Office kann das Funktionieren des VBA-Programms beeinträchtigen. Dies ist insbesondere dann der Fall, wenn der Programmierer beim Formulieren von Anweisungen einen bestimmten Zustand stillschweigend voraussetzt und dieser nicht gegeben ist. Beispiel: Zugriff auf das aktive Excel-Tabellenblatt. Ist gerade ein anderes Tabellenblatt aktiv als das gewünschte, so misslingt der Zugriff.
  • Der Zugriff von VBA auf Office geschieht über die sog. Objektmodelle. Diese Objektmodelle sind sehr umfangreich, teilweise schlecht dokumentiert, und sie besitzen zum Teil auch einen recht barocken Aufbau. Dies erklärt im Übrigen auch den Erfolg der Bücher, in denen Office-Gurus ihre intimen Kenntnisse der Objektmodelle in Form von „Tricks“ anbieten.