Zugriff auf den VBA-Editor mit der VBE-Klasse

Die VBE-Klasse ist die Schaltzentrale, wenn es darum geht, die Elemente des VBA-Editors und von VBA-Projekten per VBA zu programmieren. Die Klasse ist Teil einer eigenen Bibliothek namens Microsoft Visual Basic for Applications Extensibility 5.3 Object Library. Diese stellt alle Elemente, Methoden und Eigenschaften zur Verfügung, um die im VBA-Editor bearbeitbaren Elemente zu erstellen, zu bearbeiten oder zu löschen. Dieser Beitrag stellt die Eigenschaften und Auflistungen der VBE-Klasse vor und zeigt, wo Sie weitergehende Informationen zu den einzelnen Elementen finden.

Vorbereitung

Um die Elemente der Klasse VBE nutzen zu können, benötigen Sie einen Verweis auf die Bibliothek Microsoft Visual Basic for Applications Extensibility 5.3 Object Library, den Sie im Verweise-Dialog des VBA-Editors hinzufügen können (Menüeintrag Extras|Verweise).

Die VBE-Klasse

Um sich einen Überblick über die Elemente einer Klasse zu verschaffen, ist der Objektkatalog (zu öffnen mit F2) immer eine gute Anlaufstelle. Hier wählen Sie oben den Eintrag VBIDE und selektieren dann links unter Klassen den Eintrag VBE. Die Elemente der Klasse erscheinen dann im rechten Bereich (siehe Bild 1). Im Einzelnen finden wir dort die folgenden Elemente vor:

Elemente der VBE-Klasse im Objektkatalog

Bild 1: Elemente der VBE-Klasse im Objektkatalog

  • ActiveCodePane: Verweis auf das Code-Pane-Element, das aktuell den Fokus hat.
  • ActiveVBProject: Verweis auf das aktive VBA-Projekt, also das Projekt, von dem aus der Aufruf erfolgt.
  • ActiveWindow: Verweis auf das Window-Objekt, das im VBA-Fenster aktuell den Fokus hat.
  • AddIns: Auflistung der aktuell verfügbaren Add-Ins im VBA-Editor (nicht zu verwechseln mit den Access-Add-Ins)
  • CodePanes: Auflistung der CodePane-Objekte, die aktuell geöffnet sind
  • CommandBars: Auflistung der CommandBar-Objekte des VBA-Editors
  • Events: Ermöglicht den Zugriff auf Ereignisse von CommandBar– und Reference-Elementen
  • MainWindow: Verweis auf das VBA-Fenster
  • SelectedVBComponent: Gibt das aktuell im Projektexplorer selektierte Element zurück, falls es sich um ein Element des Typs VBComponent handelt – anderenfalls lautet das Ergebnis Nothing.
  • VBProjects: Liefert eine Auflistung der VBProject-Elemente, die aktuell im Projektexplorer des VBA-Editors angezeigt werden.
  • Version: Gibt die Version des VBA-Editors aus.
  • Windows: Liefert eine Auflistung der Window-Elemente des VBA-Editors.

Unterschied zwischen Window, CodePane und VBComponent

In der Auflistung haben wir bereits mehrere Elemente kennengelernt, die per Auflistung und auch jeweils als aktives Element ermittelt werden können. Dabei sind die VBComponent-Elemente unter Access die Elemente, die Sie im Projektexplorer in den Bereichen Microsoft Access Klassenobjekte, Module und Klassenmodule finden (siehe Bild 2).

Die verschiedenen VBComponent-Elemente

Bild 2: Die verschiedenen VBComponent-Elemente

Window-Elemente sind alle Fenster, die innerhalb des VBA-Editors angezeigt werden. Dabei handelt es sich nicht nur um die Fenster, die Code enthalten, sondern auch die ToolWindow-Elemente, also die Fenster, die Sie links, rechts, oben oder unten verankern können. CodePane-Elemente sind Container in Fenstern, die Code von VBComponent-Elementen enthalten. Die Zusammenhänge werden wir in den folgenden Beispielen noch aufschlüsseln.

Mit Window-Elementen arbeiten

Mit der Windows-Auflistung können wir alle Window-Elemente des VBA-Editors durchlaufen. Das erledigen wir in der folgenden Prozedur:

Public Sub WindowsAuflisten()
     Dim objWindow As Window
     For Each objWindow In VBE.Windows
         Debug.Print objWindow.Caption, objWindow.Type
     Next objWindow
End Sub

Dies erzeugt, wenn einige Codefenster geöffnet sind, die Ausgabe aus Bild 3. Uns interessiert nun, welche Bedeutung die Werte für die Eigenschaft Type haben.

Ausgabe der Titel und Typen von Window-Elementen

Bild 3: Ausgabe der Titel und Typen von Window-Elementen

Dazu ermitteln wir die Konstanten für diese Eigenschaft, was am schnellsten gelingt, wenn wir im Objektkatalog nach der Klasse VBIDE filtern und dort nach Elementen mit dem Teilausdruck Type suchen. Damit gelangen wir zur Auflistung vbext_WindowType, welche die Werte aus Bild 4 offenbart.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar