Erweitern der VBA-IDE: Projekte, Module und Co.

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Die Visual Basic-Entwicklungsumgebung ist definitiv in die Jahre gekommen. Wer schon einmal mit einer modernen Entwicklungsumgebung wie Eclipse oder dem Visual Studio .NET gearbeitet hat, wird bei der Rückkehr zur VBA-IDE möglicherweise einiges vermissen. Es gibt aber Möglichkeiten, die Entwicklungsumgebung zu erweitern – sogar mit den Hausmitteln von Access und mit nur einer zusätzlichen Bibliothek. Im ersten Teil der Artikelreihe schauen wir uns an, wie Sie auf die Objekte der VBA-Entwicklungsumgebung zugreifen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1904_EntwicklungsumgebungErweitern_Module.accdb.

Einstieg

Genau wie auf die Objekte einer Access-Datenbank wie Tabellen, Abfragen, Formulare und Berichte sowie die darin enthaltenen Steuerelemente können Sie auch auf die Elemente des VBA-Editors zugreifen und diese einlesen, bearbeiten, anlegen, speichern oder löschen. In diesem ersten Teil der Artikelreihe zum Thema Erweitern der VBA-Entwicklungsumgebung schauen wir uns an, wie Sie mit VBA auf die Objekte der Entwicklungsumgebung zugreifen können.

Vorbereitung

Als Erstes benötigen Sie einen Verweis auf die Bibliothek, welche die Objekte, Methoden, Eigenschaften und Ereignisse für die Programmierung des VBA-Editors bereitstellt. Diesen fügen Sie im VBA-Editor hinzu, indem Sie den Menübefehl Extras|Verweise betätigen und im nun erscheinenden Verweise-Dialog den Eintrag Microsoft Visual Basic for Applications Extensibility 5.3 hinzufügen (siehe Bild 1).

Der Verweis auf die Extensibility-Bibliothek für das Programmieren der VBA-Entwicklungsumgebung

Bild 1: Der Verweis auf die Extensibility-Bibliothek für das Programmieren der VBA-Entwicklungsumgebung

VBE: Das Hauptobjekt der Entwicklungsumgebung

In der soeben hinzugefügten Bibliothek finden Sie als Hauptelement die VBE-Klasse. Diese Klasse brauchen sie nicht zu instanzieren, Sie können direkt über den Ausdruck VBE darauf zugreifen. Das sehen Sie schon, wenn Sie im Direktbereich des VBA-Editors VBE und einen Punkt eingeben – IntelliSense zeigt dann direkt die Elemente dieser Klasse an (siehe Bild 2).

Zugriff auf die Eigenschaften und Methoden der VBE-Klasse

Bild 2: Zugriff auf die Eigenschaften und Methoden der VBE-Klasse

VBProject: Das VBA-Projekt

Damit können Sie dann auch direkt auf die Auflistung VBProjects zugreifen.

Warum aber gibt es eine Auflistung über die Projekte Hat eine Access-Anwendung nicht immer nur ein VBA-Projekt, so wie in Bild 3 dargestellt

Das VBA-Projekt im Projekt-Explorer

Bild 3: Das VBA-Projekt im Projekt-Explorer

Nein, das ist nicht der Fall: Sie können dort auch mehrere VBA-Projekte vorfinden. Das ist zum Beispiel der Fall, wenn Sie gerade ein Access-Add-In geladen haben. Dann sieht der Projekt-Explorer wie in Bild 4 aus.

Mehrere VBA-Projekte im Projekt-Explorer

Bild 4: Mehrere VBA-Projekte im Projekt-Explorer

Die einzelnen Projekte können Sie über die Auflistung VBProjects referenzieren, was etwa wie folgt aussieht:

Public Sub VBProjekteAusgeben()
    Dim objVBProject As VBProject
    Debug.Print "Anzahl VB-Projekte: "                                   & VBE.VBProjects.Count
    For Each objVBProject In VBE.VBProjects
        Debug.Print objVBProject.Name
        Debug.Print objVBProject.FileName
        Debug.Print objVBProject.Type 
    Next objVBProject
End Sub

Für das Beispiel mit dem zusätzlichen VBA-Projekt aus dem Add-In erhalten wir dann zum Beispiel die folgende Ausgabe:

Anzahl VB-Projekte: 2
prjVBEBeispiele
C:\...\1904_EntwicklungsumgebungErweitern_Module.accdb
 100 
RA2010
C:\...\ADDINS\RIBBONADMIN2016.ACCDA
 100

Die Eigenschaftswerte finden Sie übrigens auch im Eigenschaftenfenster des Projekts wieder, das Sie über den Kontextmenü-Eintrag des Projekts öffnen können (siehe Bild 5).

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

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar