Software: VBA Extension Tools: Beschreibung

Allgemeine Beschreibung

Die VBExtensionTools sind ein sog. AddIn für die VB-Entwicklungsumgebung. Im Wesentlichen besteht die Funktionalität darin, Ihnen Codierarbeiten zu erleichtern bzw. Sie davon zu entlasten, indem Sie vordefinierten Code in Ihre Codemodule einfügen können.

Teilweise verwenden Code-Teile, die eingefügt werden, bestimmte Programmiertechniken wie sie unter Tipps und Meinungen zur Visual-Basic Programmierung beschrieben werden.

Bitte beachten Sie, dass die meisten Befehle nur funktionieren (und auch nur dann sinnvoll sind), wenn ein Code-Modul-Fenster aktiv ist.

Besonders wichtig:

Dieses Werkzeug bearbeitet Ihre Code-Module. Obwohl ich sorgfältig programmiert und getestet habe, kann ich nicht garantieren, dass das Werkzeug in jeder Situation fehlerfrei funktioniert. Sichern Sie also regelmäßig Ihre Code-Module, damit Sie bei unerwünschten Ergebnissen Ihren alten Stand wieder herstellen können. Falls tatsächlich einmal unsinniger Code erzeugt wird, beachten Sie bitte folgende Hinweise:

  • Die meisten Änderungen können Sie durch (ggf. wiederholtes) Aufrufen des Befehls 'Bearbeiten'/'Rückgängig' rückgängig machen.
  • Denken Sie daran, dass die Änderungen ohnehin erst endgültig sind, wenn Sie Ihr Code-Modul gespeichert haben. Ggf. können Sie also die Änderung dadurch rückgängig machen, dass Sie das Projekt neu laden.
  • Schließlich: Bitte geben Sie mir die Chance, Fehler zu beseitigen, wenn Sie welche finden. Senden Sie mir bitte eine Fehlerbeschreibung (so ausführlich wie es Ihnen möglich ist).

Das Add-In steht derzeit leider noch nicht für die diversen VBA-Entwicklungsumgebungen zur Verfügung.

Noch ein Hinweis:

Eine Toolbar (Schaltflächenleiste) zu den VBA Extension Tools ist vorerst nicht verfügbar.
Alle Befehle sind ausschließlich über Menübefehle erreichbar.
Dies kommt einer professionellen Arbeitsweise entgegen: Wenn Sie am Anfang auf die Tastenkombinationen achten, die Ihnen den Zugriff auf die Befehle geben, werden Ihnen nach einer kurzen Eingewöhnungsphase die meisten Tastenkombinationen in 'Fleisch und Blut' übergehen.
Sie werden dann feststellen, dass Sie weitaus schneller arbeiten, als mit der Maus.


Übersicht der Funktionen und Bedienungsanleitung auf Basis der Menüstruktur

Bitte Maus über einen Menübefehl bewegen und klicken!

Seitenanfang


Befehle aus 'Aktuelles Codemodul'

Modulkopf hinzufügen

Fügt einen standardisierten Modulkopf in das aktuelle Codemodul ein.

'---------------------------------------------------------------------- ' Module Type....: Form module ' Module Name....: FDuplicate ' File...........: Duplicate.frm ' Author.........: Ralf Kunsmann ' Date...........: 2012 02 07 ' Purpose........: Duplizieren von Codesequenzen. ' Requierements..: None '----------------------------------------------------------------------

Dabei werden der Name des Autors und das Datum entsprechend der aktuellen Einstellungen eingesetzt bzw. formatiert. Der 'Purpose'-Text kann von Ihnen unmittelbar nach Ausführung des Befehls in einem Dialog eingegeben werden. Das hat den Vorteil, dass Text, der über mehrere Zeilen geht, automatisch umgebrochen wird.

Seitenanfang


Deklaration Modulname hinzufügen

Der Befehl fügt eine Konstanten-Deklaration in den Deklarationsteil des Code-Moduls ein, die den Namen des Code-Moduls beinhaltet. Falls die Deklaration bereits vorhanden ist, wird sie beibehalten bzw. angepasst, wenn sich der Name des Code-Moduls geändert hat. Dabei richtet sich der Name der Konstanten nach der Voreinstellung, die Sie mit Hilfe des Einstellungen Befehles anpassen können.

Seitenanfang


Sub-Prozedur hinzufügen

Der Befehl fügt eine 'Sub'-Prozedur in Ihr Code-Modul ein. Zu diesem Zweck wird ein Dialog angezeigt, mit dessen Hilfe Sie die erforderlichen Voreinstellungen für die neue Prozedur definieren können. Je nach dem, welche Optionen Sie dort festlegen, wird die Methode eine oder mehrere der folgenden Voreinstellungen verwenden, die Sie ebenfalls mit Hilfe der Einstellungen anpassen können:

  • Name der Kompilierzeitkonstanten
  • Name der Konstanten, die den Namen der Routine beinhaltet
  • Name der Konstanten, die den Namen des aktuellen Code-Moduls beinhaltet
  • Eine Variable, die dazu dient, einen Meldungstext für eine Fehlermeldung zu puffern (die Variable sollte von Ihnen global deklariert sein)

Seitenanfang


Function-Prozedur hinzufügen

Wie 'Sub-Prozedur hinzufügen' - mit dem Unterschied, dass eine 'Function'-Prozedur erzeugt wird.

Seitenanfang


Property-Prozedur hinzufügen

Der Befehl fügt für eine neue Eigenschaft, die Sie einem Klassen- oder Formularmodul hinzufügen möchten, den erforderlichen Code ein.

Mit Hilfe des Dialogs, der Ihnen nach dem Aufrufen des Befehls angezeigt wird, können bzw. müssen Sie Einstellungen für die neue Eigenschaft festlegen. Je nach dem welche Einstellungen Sie wählen, werden folgende Änderungen an Ihrem Modul durchgeführt:

  • Einfügen einer Deklaration für eine interne Variable, die den Wert der Eigenschaft puffert (Member-Variable)
  • Einfügen einer Deklaration für eine interne Variable, die überwacht, ob die 'Create'-Methode des Moduls ausgeführt wurde
  • Erzeugen bzw. modifizieren der 'Create'-Methode, mit deren Hilfe die Eigenschaften der Instanzen der Klasse gesetzt werden können
  • Eine Property-Let-Methode, wenn es sich um eine schreibbare Eigenschaft handelt, die ein Standarddatentyp ist
  • Eine Property-Set-Methode, wenn es sich um eine schreibbare Eigenschaft handelt, die ein Objektdatentyp ist
  • Eine Property-Get-Methode, wenn es sich um eine lesbare Eigenschaft handelt

Für die interne Variable wird ggf. ein Prefix wie 'm' oder 'm_' verwendet. Das Prefix kann von Ihnen mit Hilfe des Befehles Einstellungen angepasst werden.

Seitenanfang


Befehle aus 'Aktuelle Prozedur'

Prozedurkopf hinzufügen

Fügt einen standardisierten Prozedurkopf in das aktuelle Codemodul ein.

'---------------------------------------------------------------------- ' Procedure......: cmdReadList_Click ' Author.........: Ralf Kunsmann ' Date...........: 2012 08 09 ' Purpose........: Liest eine Wortliste ein. Dazu kann der Benutzer ' im Standarddateidialog entweder eine Access- ' Datenbank oder eine Textdatei auswählen. '----------------------------------------------------------------------

Dabei werden der Name des Autors und das Datum entsprechend der aktuellen Einstellungen eingesetzt bzw. formatiert. Der 'Purpose'-Text kann von Ihnen unmittelbar nach Ausführung des Befehls in einem Dialog eingegeben werden. Das hat den Vorteil, dass Text, der über mehrere Zeilen geht, automatisch umgebrochen wird.

Seitenanfang


Code selektieren

Markiert die aktuelle Prozedur.

Seitenanfang


Code löschen

Löscht die aktuelle Prozedur nach Rückfrage.

Seitenanfang


On Error Resume Next hinzufügen

Fügt eine 'On Error Resume Next'-Anweisung an den Anfang der Prozedur ein. Dabei wird ein Kompilierzeit-Argument (Verwendung von Kompilierzeitvariablen) verwendet, dessen Name Sie wie vor beschrieben, anpassen können.

Seitenanfang


Standard-Fehlerbehandlung hinzufügen

Fügt einen standardisierten Fehler-Behandlungs-Code in Ihre Prozedur ein. Dabei wird vorhandener Code berücksichtigt - d.h. die 'On Error GOTO'-Anweisung wird an den Anfang der Prozedur vor den vorhandenen Code eingefügt, die Fehlerbehandlung selbst wird ans Ende der Prozedur - also hinter den vorhandenen Code eingefügt.

Dabei wird ebenfalls ein Kompilierzeit-Argument verwendet um eine spezielle Art der Fehlersuche zu ermöglichen. Fehlersuche und Fehlerbereinigung

Wie unter Sub-Prozedur hinzufügen beschrieben, werden dazu auch hier Voreinstellungen verwendet, die Sie mit Hilfe des Einstellungen-Befehles anpassen können.

Seitenanfang


Trace Objekt Aufruf hinzufügen

Dieser Befehl ist nur sichtbar, wenn Sie meine Trace-Klasse in Ihr aktuelles Projekt eingebunden haben. Quellcode-Protokollierung

Ggf. fügt der Befehl die erforderlichen Aufrufe, für die Code-Protokollierung in Ihre Routine ein. Wie bei Standard-Fehlerbehandlung hinzufügen beschrieben, wird vorhandener Code berücksichtigt.

Seitenanfang


Datum and Autor hinzufügen

Fügt eine Kommentarzeile mit dem aktuellen Datum und dem Namen des Autors an der aktuellen Position des Code-Moduls ein.

Dabei werden der Name des Autors und das Datum entsprechend der aktuellen Einstellungen eingesetzt bzw. formatiert.

Seitenanfang


TODO-Marke hinzufügen

Fügt folgende Zeile an der aktuellen Position des Code-Moduls ein.

Debug.Assert 0 ' TODO: test it - or what?

Die Anweisung 'Debug.Assert 0' führt dazu, dass die Code-Ausführung in der Entwicklungsumgebung an dieser Stelle unterbrochen wird.

Der Text 'test it - or what?' der Anweisung wird markiert und sollte durch einen entsprechenden passenden Text ersetzt werden.

Zeilennummer hinzufügen bzw. entfernen

Der Befehl fügt Zeilennummern in die aktuelle Prozedur des aktuellen Code-Moduls ein.

Seitenanfang


Befehle aus 'Aktueller Code'

Variable Deklarieren

Zeigt einen Dialog mit dessen Hilfe eine Variablen- (oder Konstanten-) deklaration ohne viel Tipparbeit an der aktuellen Stelle in den Code eingefügt werden kann.

Seitenanfang


Code duplizieren

Mit Hilfe dieses Befehls können Sie die Codezeile(n), die im Code-Modul markiert ist (sind), vervielfältigen. Was bringt Ihnen das??? Ein Beispiel soll das veranschaulichen.

Angenommen Sie arbeiten mit einer Datenbanktabelle und Sie möchten die Feldinhalte eines Datensatzes der Tabelle in ein Formular kopieren. Je nach dem, wie viele Felder die Tabelle hat, kann das eine ziemlich zeitintensive, fehleranfällige und langweilige Angelegenheit sein, wie folgendes Beispiel zeigt:

txtSuchbegriff = rsAdressen!Suchbegriff txtBriefAnrede = rsAdressen!BriefAnrede txtAnrede = rsAdressen!Anrede txtTitel = rsAdressen!Titel txtAkadGrad = rsAdressen!AkadGrad txtVorname = rsAdressen!Vorname txtNachname = rsAdressen!Nachname txtStraße = rsAdressen!Strasse txtPLZ = rsAdressen!PLZ txtOrt = rsAdressen!Ort txtPostfach = rsAdressen!Postfach txtPLZPostfach = rsAdressen!PLZPostfach txtGebDatum = rsAdressen!GebDatum

Wie gesagt das kann eine ziemlich zeitintensive, fehleranfällige und langweilige Angelegenheit sein, muss aber nicht. Mit Hilfe des Befehls 'Code duplizieren' gehen Sie wie folgt vor:

  • Sie schreiben die erste Codezeile (txtSuchbegriff = rsAdressen!Suchbegriff)
  • Sie markieren diese Codezeile
  • Sie rufen den Befehl 'Code duplizieren' auf
  • Im Dialog 'Code duplication' geben Sie in das Feld 'String to be replaced' die Zeichenkette 'Suchbegriff' ein
  • In das nächste Feld geben Sie die Liste der Feldbezeichnungen (Briefanrede, Anrede, etc., jeweils durch einen Zeilenumbruch getrennt) ein.
  • Sie klicken die Schaltfläche 'OK'

Das Ergebnis dieser Aktion ist der oben stehende Code.

Noch drei Hinweise dazu:

  1. Diese Technik funktioniert hier so schön, weil die Steuerelemente auf dem Formular die gleichen Bezeichnungen haben, wie die jeweiligen Felder in der Datenbanktabelle (abgesehen natürlich von irgend welchen Prefixes).
  2. Diese Technik rentiert sich selbstverständlich um so mehr, je umfangreicher die Menge der erforderlichen Zuweisungen ist (in diesem Beispiel die Menge der Datenbankfelder).
  3. Noch witziger ist diese Technik, wenn Sie die Wortliste nicht eintippen, sondern von irgend woher kopieren. Wenn Sie z.B. - ähnlich wie in diesem Beispiel - mit einer sehr umfangreichen Datenbanktabelle arbeiten, fügen Sie folgenden Code an irgend eine Stelle Ihres Projektes ein und führen Sie ihn in der Entwicklungsumgebung aus:
    Dim td As TableDef, fld As Field
    Set td = db.TableDefs("WieAuchImmerIhreTabelleHeissenMag")
    For  Each fld In td
        Debug.Print fld.Name
    Next

Seitenanfang


Zuweisung(en) tauschen

Mit Hilfe dieses Befehls können Sie die Codezeile(n), die im Code-Modul markiert ist (sind) und eine Zuweisung beinhalten, vervielfältigen und dabei die Zuweisung umkehren. Nehmen Sie z.B. obigen Codeteil (Datenbankfelder an Textfeld binden). Wenn Sie diesen Code in Ihrem Code-Modul markieren und den Befehl 'Zuweisung(en) tauschen' aufrufen, wird daraus folgender neuer Code-Teil erzeugt und in das Code-Modul eingefügt:

    rsAdressen!Suchbegriff = txtSuchbegriff
    rsAdressen!BriefAnrede = txtBriefAnrede
    rsAdressen!Anrede = txtAnrede
    rsAdressen!Titel = txtTitel
    rsAdressen!AkadGrad = txtAkadGrad
    rsAdressen!Vorname = txtVorname
    rsAdressen!Nachname = txtNachname
    rsAdressen!Strasse = txtStrasse
    rsAdressen!PLZ = txtPLZ
    rsAdressen!Ort = txtOrt
    rsAdressen!Postfach = txtPostfach
    rsAdressen!PLZPostfach = txtPLZPostfach
    rsAdressen!GebDatum = txtGebDatum

Seitenanfang


Code auskommentieren

Dieser Befehl kommentiert den markierten Code aus, in dem ein Hochkomma an den Beginn jeder Zeile eingefügt wird.

Seitenanfang


Code auskommentieren rückgängig

Dieser Befehl entfernt jedes am Anfang von markierten Zeilen befindliche Hochkomma und aktiviert damit einen zuvor auskommentierten Code wieder.

Seitenanfang


... Block einfügen

Mit Hilfe der Befehle

  • If Then Block einfügen
  • For Next Block einfügen
  • Do While Block einfügen
  • Select Case Block einfügen

bzw. deren Unterbefehle fügen Sie die jeweilige Kontrollstruktur an der aktuellen Stelle in Ihr Code-Modul ein. Sofern Sie vorher Code markiert haben, wird dieser Code in die neue Kontrollstruktur eingefügt.

Beispiel:

Aus

Debug.Print "Hallo Welt"

wird

If KontrollBedingung Then Debug.Print "Hallo Welt" End If

Seitenanfang


Aktuellen Code in Gross-/Kleinbuchstaben

Diese Befehle ändern die Schreibweise der aktuell markierten Codesequenz in Gross- bzw. Kleinschreibung.

Seitenanfang


Objekt Hierarchie

Dieser Befehl ist derzeit nur für VB 6.0 Extension Tools verfügbar.

Seitenanfang


Working Modules

Dieser Befehl ist derzeit nur für VB 6.0 Extension Tools verfügbar.

Seitenanfang


Projekt Dokumentation

Dieser Befehl ist derzeit nur für VB 6.0 Extension Tools verfügbar.

Modulköpfe und Prozedurköpfe ausgewertet und innerhalb der Dokumentation ausgegeben.

Seitenanfang


Befehl 'Arrange code windows'

Dieser Befehl ist derzeit nur für VB 6.0 Extension Tools verfügbar.

Seitenanfang


Befehle im Menü 'Sonstiges'

Seitenanfang


Einstellungen

Mit Hilfe dieses Befehls können Sie bestimmte Voreinstellungen für die VBExtensionTools festlegen. Die meisten wurden vorab in dieser Beschreibung bereits genannt.

Darüber hinaus können Sie festlegen, an welcher Stelle das Hauptmenü der VBExtensionTools angezeigt wird. Die möglichen Einstellungen sind:

  • Im Hauptmenü der Entwicklungsumgebung (links des 'Hilfe'-Menüs)
  • Im Menü 'Add-Ins'
  • Im Menü 'Extras'

Seitenanfang


Bedienungsanleitung

Lädt diese Seite.

Menübefehle wiederherstellen

Dieser Befehl ist nur für VB 6.0 Extension Tools verfügbar.

Seitenanfang


Befehle im (Haupt-) Menü 'Fenster'

Diese Befehle sind derzeit nur für VB 6.0 Extension Tools verfügbar.



Weitere Funktionen sind geplant. Dazu gehören:
  • Nicht verwendete Variable in einer Funktionen erkennen und auflisten
  • Einen Ausdruck in eine Varialbe oder Konstante umwandeln und alle Vorkommen des Ausdrucks entsprechend ersetzen
  • Einen Block von Anweisungen ein eine neue Funktion verschieben und den Block durch einen entsprechenden Funktionsaufruf ersetzten
  • Alle Codemodule eines VBA-Projekts Exportieren und Importieren
  • SVN-Anbindung für VBA-Projekte


Anregungen und Wünsche

...sind jederzeit willkommen. Senden Sie uns eine Nachricht

Seitenanfang

Kontaktaufnahme- und Terminvereinbarung:

Bei Fragen und für Terminvereinbarungen erreichen Sie uns unter:

0 63 49 99 07 38

0 151 51 95 34 00

Oder nutzen Sie das Kontaktformular




Ihr Ansprechpartner:


Hier sollte das Fahnungsfoto zu sehen sein.

Ralf Kunsmann

Spezialist für VBA-Programmierung
(alle Office-Anwendungen)
Entwickler der
VBA-Extension-Tools