Home > Artikel > Ausgabe 11/2014 > Rund um den VBA-Editor

Rund um den VBA-Editor

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Ob Sie schon ein alter Hase sind, oder gerade die ersten Schritte der Programmierung unter Access unternehmen, eine eingehendere Auseinandersetzung mit der Entwicklungsumgebung von Office und Visual Basic for Applications kann nicht schaden. Beleuchten wir deshalb in diesem Beitrag im Schnelldurchlauf deren Bestandteile, welche sich unter der Haube des VBA-Editors verbergen.

Sie rufen die VBA-Entwicklungsumgebung von Access auf, indem Sie im Ribbon über den Reiter Datenbanktools die Schaltfläche Visual Basic anklicken, oder alternativ einfach die Tastenkombination STRG-G drücken. Ebenso gelangen Sie dorthin, wenn Sie den Button mit den drei Pünktchen betätigen, der sich hinter jeder Zeile eines Ereignisses im Formular- oder Berichtsentwurf befindet, wobei dann allerdings auch gleich der Rahmen einer Ereignisprozedur angelegt wird. Die VBA-Entwicklungsumgebung – kurz: VBA-Editor – sieht dann etwa so aus, wie in Bild 1 und stellt eine Sammlung von Einzelkomponenten dar, die sich ein- und ausblenden lassen. Sie unterscheidet sich in nichts von der VBA-Umgebung, die Sie auch unter Excel oder Word vorfinden, und sogar die hier vorgenommenen Einstellungen werden von allen Office-Anwendungen geteilt.

Komplette VBA-Entwicklungsumgebung mit einem geöffneten Beispielcode

Bild 1: Komplette VBA-Entwicklungsumgebung mit einem geöffneten Beispielcode

Die Komponenten sind in der Regel Unterfenster der Rahmenumgebung, die sich selbst an eine beliebige Stelle des Bildschirm platzieren lässt. Sollten Sie zwei Monitore zur Verfügung haben, dann macht es Sinn, den VBA-Editor auf den zweiten Bildschirm zu schieben, damit die Access-Oberfläche nicht von ihm überdeckt wird. Dort können Sie das Rahmenfenster auch maximieren. VBA merkt sich die Positionen und den Zustand aller Bestandteile und stellt sie beim nächsten Aufruf wieder her.

Der wichtigste Teil ist sicher das Code-Fenster, welches sich im Zentrum des Editors zeigt. Ein Code-Fenster weist kein eigenes Schließen-Kreuzchen auf, sondern wird über das rote Kreuzchen rechts oben unterhalb der Schließen-Schaltfläche der Umgebung selbst geschlossen. Welche weiteren Komponenten in der Umgebung eingeschaltet sind, steuert das Menü Ansicht (siehe Bild 2) und dessen Untermenü Symbolleisten (Bild 3).

Menü Ansicht des VBA-Editors

Bild 2: Menü Ansicht des VBA-Editors

Untermenü zu Symbolleisten

Bild 3: Untermenü zu Symbolleisten

Symbolleisten

Die Symbolleisten sind imgrunde nur für den schnelleren Zugriff auf bestimmte Funktionen gedacht, weisen aber keine Elemente auf, die nicht auch über das Menü des Editors zu erreichen wären. So finden sich etwa in der Symbolleiste Voreinstellung – in Bild 1 ganz oben – viele Elemente, die auch im Menü Ansicht vorkommen. Den Objektkatalog können Sie so über nur einen Button-Klick aufrufen, statt erst das Menü Ansicht aufzuklappen. Statt mehrere Symbolleisten anzuordnen, können Sie genauso gut über Anpassen... ihre eigene Zusammenstellung fabrizieren, und zwar auf die gleiche Weise, wie in früheren Office-Applikationen. Dabei ist es ratsam, nicht die eingebauten Leisten zu modifizieren, sondern eine neue Leiste zu erzeugen und die gewünschten Elemente in Sie zu kopieren, denn beim Zurücksetzen von durcheinander gekommenen eingebauten Leisten gingen sonst alle Anpassungen verloren. Vor allem sollten Sie Abstand davon nehmen, die Leisten von Add-Ins zu verändern, wie etwa die der MZ-Tools in Bild 3, auf die wir noch zu sprechen kommen.

Andockbare Fenster

Bis auf die Code-Fenster lassen sich alle weiteren VBA-Komponenten in die Umgebung eindocken oder als separate Fenster anzeigen. Diese Möglichkeit lässt sich über den Optionen-Dialog von VBA steuern (Bild 4). Standardmäßig ist das seltsamerweise für den Objektkatalog deaktiviert, was Sie besser ändern, um zu einer Anordnung, wie in Bild 1 kommen zu können. Sie lösen ein Fenster aus der Verankerung, indem Sie es an der Titelleiste solange in eine Richtung ziehen, bis es als separates Fenster erscheint. Sie verankern es wieder, indem Sie es an der Titelleiste in die gewünschte Umgebungsposition ziehen, was bei zahlreichen sichtbaren Komponenten nicht ganz einfach ist. Blenden Sie deshalb zunächst alle Komponenten bis auf den Projektexplorer aus und fügen sie nach und nach die anderen Fenster hinzu, wobei Sie jeweils die Verankerung neu bestimmen. Welche Stellen Sie dabei bevorzugen, ist Geschmackssache.

Verankern-Seite des VBA-Optionen-Dialogs

Bild 4: Verankern-Seite des VBA-Optionen-Dialogs

Der Projektexplorer

Eine Datenbank kann ein VBA-Projekt enthalten, das alle seine Code-Teile beherbergt. Also globale Module, Klassenmodule, sowie Formular- und Berichtsmodule. Einen Spezialfall stellen die UserForm-Module dar, die jedoch in Access-Datenbanken, im Gegensatz zu Excel oder Word, praktisch irrelevant sind. Die Verwaltung der Module übernimmt der Projektexplorer, der mitsamt seinem Kontextmenü in Bild 5 zu sehen ist. Dieses Menü ist abermals eine Zusammenstellung von Anweisungen, die auch im Menü des VBA-Editors auftauchen, enthält jedoch zusätzliche Befehle, wie den zum Anlegen eines neuen Moduls per Einfügen. Manche Add-Ins legen darüber hinaus hier auch zusätzliche Einträge an – in Bild 5 etwa Anweisungen der MZ-Tools. Sie können den Projektexplorer ebenfalls als separates Fenster aus der Verankerung lösen. Es gibt allerdings keinen triftigen Grund, dies zu tun. In der Regel befindet er sich eingedockt an der linken Seite der VBA-Umgebung.

Der VBA-Projektexplorer mit seinem Kontextmenü

Bild 5: Der VBA-Projektexplorer mit seinem Kontextmenü

Code-Fenster

Den Code für ihre Module schreiben Sie in die Code-Fenster, die sich etwa öffnen, wenn Sie einen Eintrag im Projektexplorer doppelklicken. Mehrere Code-Fenster können parallel geöffnet sein, meist jedoch werden Sie nur eines im Zentrum der Umgebung angezeigt haben wollen. Mehrere zugleich braucht man eigentlich nur dann, wenn Code-Teile zu vergleichen sind oder Code von einem in ein anderes Modul zu kopieren ist. Die Ansicht der Code-Fenster wird über das Menü Fenster des VBA-Editors geregelt. Dort findet sich neben den üblichen Einträgen zu MDI-Anwendungen der spezielle Eintrag Teilen. Das aktive Code-Fenster wir damit horizontal unterteilt, wobei jeder Bereich zwar dasselbe Modul zeigt, jedoch unterschiedliche Stellen in ihm, die durch Scrollen in den sichtbaren Bereich gebracht werden. Auch diese Funktion wird man selten benötigen. Sie ist etwa dann dienlich, wenn Sie in einer Prozedur den Aufruf einer Unterfunktion stehen haben, die Sie dann im unteren geteilten Bereich einblenden, um die Code-Übersicht zu verbessern.

Das Kontextmenü (siehe Bild 6) eines Code-Fensters weist etliche Einträge auf, die auch im Menü des VBA-Editors (Bearbeiten) vorkommen. Gehen wir hier jedoch auf einige Anweisungen ein, die nicht ganz selbsterklärend sind:

Das Kontextmenü eines Code-Fensters

Bild 6: Das Kontextmenü eines Code-Fensters

  • Definition wirkt sich erst dann aus, wenn Sie einen Ausdruck im Code markiert haben. Es erfolgt in diesem Fall ein Sprung zu der Stelle, an der der Ausdruck definiert wurde. Das kann die Definition einer Variablen sein, einer API-Deklaration, einer eigenen Funktion, oder die Methode einer Bibliothek im Objektkatalog. Der Sprung kann also auch zu anderen Komponenten führen.
  • Letze Position führt zum Anspringen derjenigen Code-Stelle, an der Sie zuletzt gearbeitet hatten. Auch dies findet gegebenenfalls modulübergreifend statt. Arbeiten bedeutet hier allerdings nicht unbedingt, dass Code modifiziert wurde, sondern lediglich, dass der Cursor sich ehemals an dieser Position befand.
  • Umschalten|Lesezeichen. Dabei wird an der Stelle, an der sich der Cursor im Code-Fenster befindet, ein blaues Zeichen am Rand eingeblendet, das Lesezeichen. Lesezeichen haben keine Bezeichnung, was den Umgang mit ihnen erschwert. Die Lesezeichen finden Sie dann über das Menü Bearbeiten des VBA-Editors als Untermenü des Eintrags Lesezeichen. Dort kann lediglich eine Code-Stelle nach der anderen angesprungen werde, die durch Lesezeichen markiert wurde. Sinn macht dies etwa zum Verdeutlichen von verschachtelten Prozeduren, die sich gegenseitig aufrufen. Der Ablauf kann so besser kontrolliert werden.
  • Umschalten|Haltepunkt. Soll die Ausführung des Codes an einer bestimmten Stelle unterbrochen werden, so setzen Sie dort einen Haltepunkt, wie in Bild 7. Sobald die Code-Ausführung dort angekommen ist, stoppt sie und wechselt den roten Untergrund der Zeile auf gelb. Nun können Sie durch Überfahren mit der Maus die Inhalte von Variablen untersuchen und sogar im Direktfenster neue VBA-Anweisungen ausführen lassen, die sich auf den Kontext der aktuellen Prozedur beziehen. Benötigt wird das zum Debuggen von Code. Es können mehrere Haltepunkte definiert werden. Die Code-Ausführung wird fortgesetzt, indem Sie in der Symbolleiste auf das Icon mit dem grünen Pfeil klicken, oder über das Menü Debuggen einen Einzelschritt der nächsten Zeile auslösen.
  • Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

    Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!