OoP mit VBA

Objektorientierte Programmierung mit VBA

Visual Basic hat sich zu einer (fast) vollständigen objektorientierten Programmiersprache entwickelt. Wenngleich die Arbeit mit Objekten eine Herausforderung für den VBA-Neuling darstellt, die Ergebnisse ist jede Anstrengung wert.

Was ist ein Objekt

Durch Objekte – lebendige Funktionen der VBA-Landschaft – hat man Zugang zur Funktionalität der zugrunde liegenden VBA-Anwendung, in der man arbeitet (Word, Excel etc.). Darüber hinaus kann man noch auf Objekte aus anderen kompatiblen Anwendungen zugreifen und sogar eigene Objekte schaffen.

Vom Standpunkt der Praxis aus gesehen, ist ein Objekt einfach ein benanntes Element: Es hat:

Eigenschaften: Einstellungen, die überprüft und geändert werden können
Methoden: Aktionen, die das Objekt durchführen kann, wenn das Programm es dazu auffordert
Ereignisse: Dinge, die mit dem Objekt passieren, auf welche es reagieren kann, indem es automatisch eine vorher definierte Aktion durchführt

Etwas ist ein Objekt, wenn es sowohl Daten als ach Code, der die Daten bearbeitet, besitzt. Ein Objekt schließt die Daten und den dazugehörigen Code ein.

Objekte als Komponenten von VBA-Anwendungen

Der einfachste Weg, sich Objekten anzunähern, ist, sie sich als Teile der eigenen VBA-Anwendung und Dokumente vorzustellen. Eine Form in einer Visio-Zeichnung ist ein Objekt, genau wie jede Verbindungs(linie), die zwei Formen verbindet. Das trifft auch für jede Ebene, der man Formen zuordnen kann, und für jede Seite zu, zu dem alle Seiten, Ebenen, Formen und Linien gehören.

Genauso ist es in Excel. Zu Excel-Objekten gehören die Zellen, in die man Daten und Formeln eingibt, bestimmte Bereiche von Zellen, die Diagramme, die viele Arbeitsblätter illustrieren, einzelne Arbeitsblätter sowie komplette Arbeitsmappen. Und in den meisten VBA-Anwendungen sind die Symbolleistungen und Menüs, die Schaltflächen und Auswahlelemente, die sie erhalten, ebenfalls Objekte. VBA-Objekte existieren in einer Hierarchie, in der eine Art von Objekt andere Arten von Objekten enthält. Diese Objekt-Hierarchien werden Objektmodelle genannt.