Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Ihren XING-Kontakten zeigen

Diesen Beitrag Ihrem XING-Kontakten vorstellen

Diesen Beitrag auf Facebook teilen

Verwandte Beiträge:

Effizientes Codieren

Alle verwandten Beiträge ansehen ...

Bisherige Kommentare:

Noch keine Kommentare vorhanden.

Alle Kommentare ansehen oder Kommentar abgeben

Über den Autor:

Alexander Sascha Trowitzsch

Bitte nutzen Sie das XING-Profil nicht
für Fragen zum Artikel, sondern nur für
den Kontaktaustausch beziehungsweise
Projekt- oder Supportanfragen.

Prozedurbrowser für den VBA-Editor

André Minhorst, Duisburg, und Sascha Trowitzsch, Berlin

Der Funktionsumfang der Visual Basic-Entwicklungsumgebung von Microsoft Access und den anderen Office-Anwendungen ist eigentlich völlig ausreichend. Man sollte aber keinen allzu genauen Blick auf moderne und offene Entwicklungsumgebungen wie beispielsweise Eclipse werfen, die von den Mitgliedern der Open Source-Gemeinde ständig erweitert werden. Dass auch die VBA-VBE erweiterbar ist, wissen die wenigsten. Der vorliegende Beitrag stellt ein sehr praktisches Tool vor, das Sie bereits nach kurzer Zeit vermutlich nicht mehr missen möchten: den Prozedurbrowser.

Beispieldateien downloaden:

Details anzeigen

Der Prozedurbrowser

Der VBA-Editor enthält drei Elemente für die Navigation in Modulen und Prozeduren
(s. Abb. 1). Mit dem Objektbrowser, der sich üblicherweise im linken Bereich befindet, können Sie die Formular- und Berichtsmodule, die Standardmodule und die Klassenmodule auswählen. Direkt oberhalb des Quellcode-Fensters befinden sich zwei Kombinationsfelder zur Auswahl des Objekts und der enthaltenen Deklarationen und Prozeduren. Wer diese beiden Kombinationsfelder einmal genutzt hat, um etwas schneller durch Module mit mehreren hundert Zeilen Code zu navigieren, wird von ihrem Komfort unter Umständen nicht gerade begeistert sein.

Abb. 1: Der VBA-Editor in der Grundausstattung ...

Der in diesem Beitrag vorgestellte Prozedurbrowser zeigt die in einem Modul enthaltenen Deklarationen und Prozeduren übersichtlich in einem eigenen Fenster an. Damit ersetzt er nicht nur die Funktion der beiden Kombinationsfelder, sondern fügt auch noch einige Features hinzu - beispielsweise durch die Anzeige der Variablendeklaration oder der unterschiedlichen Darstellung der einzelnen Prozedurarten (s. Abb. 2). Bereits beim Überfahren eines Variablen- oder Prozedurnamens springt das Codefenster zum gewünschten Code. Zusätzlich können Sie per Kontextmenü einige weitere Funktionen aufrufen.

Abb. 2: ... und mit Prozedurbrowser

In den folgenden Abschnitten erfahren Sie, wo Sie den Prozedurbrowser bekommen, wie er installiert wird und welche Funktionen er im Detail bietet.

Hinweis

Leider besteht nur für Benutzer von Access 2000 und höher Grund zur Freude: Com-Add-Ins werden nämlich erst mit dem unter Office 2000 eingeführten gemeinsamen VBA-Editor unterstützt. (

Download und Installation

Der Prozedurbrowser ist ein Com-Add-In, das in zwei Varianten verfügbar ist. Die erste Version (procbrowser.exe) setzt das Vorhandensein des Microsoft Windows Common Control 6.0 (MSCOMCTL.OCX) voraus. Sie kopiert die Datei procbrowser.dll in das Verzeichnis c:\Programme\Gemeinsame Dateien\mosssoft und legt einige Einträge in der Registry an.

Hinweis

Ob die Datei MSCOMCTL.OCX auf dem Zielrechner installiert ist, finden Sie am einfachsten heraus, wenn Sie im Verzeichnis c:\Windows\System32 danach suchen. (

Die zweite Variante (procbrowser.msi) kommt als Microsoft Installer Package und bringt das MSCOMCTL.OCX direkt mit.

Hinweis

Sie finden die bei Drucklegung dieses Beitrags aktuellen Versionen auf der beiliegenden CD. Das Tool befindet sich noch in der Entwicklung und wird gegebenenfalls noch erweitert. Informationen über neue Versionen und Downloadmöglichkeiten finden Sie hier: http://www.mosssoft.de/
public/procbrowser/ (

Integration des Prozedurbrowsers

Nach der Ausführung der Installationsdatei sind nur noch zwei Schritte erforderlich. Starten Sie Access und öffnen Sie den VBA-Editor (am schnellsten per Strg + G). Rufen Sie dort über den Menüeintrag Add-Ins/Add-In-Manager... den Dialog Add-In-Manager auf.

Der Add-In-Manager zeigt, wenn die Installation erfolgreich war, den Eintrag aus Abb. 3 an. Wählen Sie den Eintrag aus und stellen Sie mit den beiden Optionen Geladen/Entladen und Beim Start laden das Ladeverhalten des Add-Ins ein. Die erste Option lädt das Add-In sofort, die zweite legt fest, dass es immer automatisch beim Start des VBA-Editors geladen wird.

Abb. 3: Der Add-In-Manager des VBA-Editors

Wenn Sie den Dialog nun schließen, tut sich erstmal nichts. Der Prozedurbrowser ist zunächst nur der Liste der zu ladenden Add-Ins hinzugefügt worden. Sie müssen ihn noch an der gewünschten Stelle platzieren. Dazu öffnen Sie erneut den Menüpunkt Add-Ins, wählen aber diesmal den neu hinzugekommenen Eintrag mossSOFT Proc Browser aus.

Abb. 4: Geladene Add-Ins sind über diesen Menüpunkt erreichbar.

Dieser erscheint dann zunächst als "frei schwebendes" Fenster im VBA-Editor. Um ihn an einer bestimmten Stelle zu verankern, schieben Sie ihn so lange in die gewünschte Richtung, bis der dicke Rahmen sich in einen dünnen Rahmen verändert, und lassen ihn dann los. Wo Sie den Prozedurbrowser verankern, ist Ihrem persönlichen Geschmack überlassen, aber eine Anordnung in der Nähe des Projektbrowsers macht sicher Sinn.

Funktionen des
Prozedurbrowsers

Der Prozedurbrowser zeigt den Deklarationsteil und die Prozeduren des aktuell im Projektbrowser ausgewählten Moduls an (s. Abb. 5).

Dabei verwendet der Prozedurbrowser einige unterschiedliche Symbole und Farben, um neben dem Namen des Elements direkt noch weitere Informationen über dessen Art mitzuliefern.
Tab. 1 zeigt eine Übersicht der möglichen Elementarten.

Neben den enthaltenen Symbolen unterscheidet der Prozedurbrowser private und öffentliche Prozeduren, indem er sie durch verschiedene Farben kennzeichnet (in den Screenshots nicht zu erkennen).

Abb. 5: Anzeige des Deklarationsteils und der Prozeduren eines Moduls

Symbol

Elementart

Projekt

Kein Codefenster offen

Standardmodul

Klassenmodul

Formularmodul

MSForms Userform-Modul

Berichtsmodul

ActiveX-Modul

Sub-Prozedur

Function-Prozedur

Property Get-Prozedur

Property Let/Set-Prozedur

Type

API-Deklaration

Enumeration

Variable

Event

Tab. 1: Symbole im Prozedurbrowser

Anzeigen eines Elements

Um eine bestimmte Prozedur im Codefenster anzuzeigen, brauchen Sie in der Standardeinstellung einfach mit der Maus über den gewünschten Eintrag zu fahren. Die entsprechende Deklaration/Prozedur wird dann meist am oberen Rand des Codefensters angezeigt.

Kontextmenü eines Elements

Jeder Eintrag des Prozedurbrowsers besitzt ein Kontextmenü, das weitere Aktionen und Informationen bereitstellt (s. Abb. 6).

Abb. 6: Kontextmenü des Prozedurbrowsers

Die erste Ebene des Kontextmenüs enthält einige Einträge, die unter Umständen eine Menge Tipparbeit sparen: Mit der Anweisung Prozedur ausführen starten Sie die aktuell markierte Prozedur. Das funktioniert nicht mit Funktionen und Prozeduren in Klassenmodulen, aber mit allen Prozeduren in Standardmodulen. Sogar der Aufruf von Prozeduren mit Parametern ist vorgesehen: Dabei zeigt der Prozedurbrowser einen Dialog zur Eingabe der gewünschten Parameter an (s. Abb. 7).

Die beiden Einträge Prozedur kopieren und Prozedur löschen kopieren die aktuelle Prozedur in die Zwischenablage beziehungsweise löschen die aktuelle Prozedur. Damit sparen Sie sich das lästige Markieren der kompletten Prozedur, was sich gerade bei längeren Prozeduren bemerkbar macht.

Abb. 7: Abfrage von Prozedur-Parametern

Abb. 8: Anzeige der vollständigen Deklaration per TippText

Das Untermenü Optionen enthält Einträge mit der folgenden Bedeutung:

  • Löschen bestätigen: Legt fest, ob Löschvorgänge nochmals zu bestätigen sind.
  • Farbunterlegung: Aktiviert oder deaktiviert die Unterlegung der Elemente mit unterschiedlichen Farben.
  • PlusMinus-Zeichen: Aktiviert oder deaktiviert die Anzeige von Plus- und Minus-Zeichen zum Auf- und Zuklappen von Ebenen.
  • Autotrack: Legt fest, ob eine Prozedur direkt beim Überfahren des Elements oder erst nach einem Klick darauf angezeigt wird.
  • TippText: Aktiviert oder deaktiviert die Anzeige der kompletten ersten Anzeige beim Überfahren eines Elements (s. Abb. 8).
  • Liste sortiert: Legt fest, ob die Elemente in alphabetischer Reihenfolge oder in der Reihenfolge des Vorkommens im Code angezeigt werden.
  • Refresh Rate: Legt die Zeit zwischen zwei Aktualisierungen in Millisekunden fest. Eine kurze Refresh Rate kann die Performance verschlechtern.
  • Aktualisieren der Anzeige

    Neben der automatischen Aktualisierung der Anzeige, deren Intervall über die Option Refresh Rate festgelegt wird, können Sie die Anzeige auch manuell aktualisieren. Dazu verwenden Sie die Schaltfläche mit der Beschriftung Refresh.

    Zusammenfassung und Ausblick

    Mit dem Prozedurbrowser erhalten Sie ein kostenloses Tool, das die Navigation in langen Prozeduren sehr vereinfacht und das außerdem die Ausführung von Prozeduren ohne das mühsame Eintippen der Aufrufe im Testfenster ermöglicht.

    Die Erstellung solcher COM-Add-Ins ist zwar sehr schlecht dokumentiert; aber die benötigten Schritte grenzen bei weitem nicht an Zauberei.

    Datum

    Beschreibung

    11.01.2006

    • Bugfix: Das Ausführen einer Prozedur über das Kontextmenü misslang bisher unter Word, Excel und Powerpoint. Dies ist in der aktuellen Version gefixt. (Anmerkung: Unter Outlook ist das Ausführen von Prozeduren grundsätzlich aus technischen Gründen nicht möglich.)

    09.01.2006

    • Ausführen einer Prozedur über das Kontextmenü des ProcBrowsers misst die Ausführungszeit und zeigt sie an.

    19.11.2005

    • Der Kontextmenüpunkt "Farbunterlegung" ist in "Gültigkeitsbereich" geändert.
    • Statt der bisherigen Identifitierung des Gültigkeitsbereiches durch Farbhintergrund einer Zeile:
      - Public-, Global-Deklarationen sind in schwarzer Schrift und fett
      - Private-Deklarationen sind in grauer Schrift
      - Static-Deklarationen sind in hellblauer Schrift
      - Friend-Deklarationen sind in violetter Schrift
    • Der ProcBrowser merkt sich nun den Status des "Declares"-Knotens: Wenn er eingeklappt wird, dann bleibt er das auch beim Wechsel in ein anderes Modul. (Das war bisher nicht so; bei Wechsel war immer der gesamte Baum ausgeklappt)

    11.08.2005

    • Das Addin parst nun durchgehend auf Änderungen der Codezeilenzahl. Neu hinzugefügte oder gelöschte Prozeduren werden somit erkannt und dies im ProcBrowser angezeigt. Das häufige Klicken auf den "Refresh"-Button entfällt somit.

    04.09.2004

    • Zusätzlicher Menüpunkt "Prozedur ausführen..." im Kontextmenü. (Markierte Prozedur wird ausgeführt und fragt ggfls. in erscheinendem Dialogfeld nach Parametereingabe.)
    • Bug bei Anweisungen zur Bedingten Kompilierung (#Const, #If) beseitigt

    04.04.2004

    • Kontextmenü umgestaltet (weicht nun von obiger Beschreibung leicht ab).
    • Zusätzliche Menüpunkte:
      - Löschen der markierten Prozedur aus dem Code
      - Kopieren der markierten Prozedur in die Zwischenablage

    22.02.2004

    • Weitere kleine Bugs bei Scan der Variablendeklarationen gefixt

    19.02.2004

    • Fehler bei Array-Variablendeklarationen gefixt

    13.02.2004

    • Verlagerung der Optionen in ein Kontextmenü; Möglichkeit der Sortierung der Einträge

    08.02.2004

    • Farbliche Unterscheidung der Einträge im Treeview je nach Gültigkeitsbereich der Variablen/Prozeduren
    • Bugfixes in Quelltext-Scan

    07.02.2004

    • Deklarationsbereich in den Browser mit aufgenommen
    • Bugfixes

    03.02.2004

    • Veröffentlichte Version (intern 0.3.26)

    Download

    Download

    Die .zip-Datei enthält folgende Dateien (.mdb-Dateien mit '00' im Dateinamen funktionieren in Access 2000 und höher):

    procbrowser.msi

    procbrowser.exe

    Beispieldateien downloaden

    Verwandte Beiträge:

    Effizientes Codieren

    Kommentare und Ergänzungen

    Wenn Sie Kommentare, Fragen oder Ergänzungen zu diesem Artikel haben, können Sie diese hier eintragen. Wir bemühen uns, kurzfristig auf Ihren Kommentar einzugehen.

    Ihr Name:

    Ihre E-Mail-Adresse (für
    Rückfragen, wird nicht veröffentlicht:

    Betreff:

    Ihr Kommentar zu diesem Artikel:

    © 2003-2010 André Minhorst Alle Rechte vorbehalten.