Einzelne Codezeilen lassen sich im Direktbereich des VBA-Editors ausführen.
Meistens wird das nicht ausreichen.
Für den Fall, dass mehrere Codezeilen benötigt werden, stellt der VBA-Editor Module zur Verfügung.
Was sind Module und welche Arten gibt es?
Diese Fragen will der folgende Beitrag beantworten.
Table of Contents
1. Was sind Module in VBA?
Das VBA-Modul ist eine Datei mit der Erweiterung „.bcf“, die Code im Visual Basic-Editor enthält.
Jedes Modul verfügt über ein eigenes Codefenster, in das du schreiben kannst. Du kannst ein neues Modul einfügen, löschen, speichern und importieren.
Ein solches Modul wird verwendet, um VBA-Code zu speichern, den du im VBE (Visual Basic Editor) geschrieben hast.
So gesehen ist ein Modul eine Art Container, der eine oder mehrere Prozeduren aufnehmen kann.
Module gehören immer zu einem Projekt. Eine Arbeitsmappe in Excel ist als so ein Projekt zu betrachten.
2. Welche Modultypen gibt es?
2.1 Standardmodule
Standardmodule sind am häufigsten im Einsatz.
Wissenswert ist, dass auch Codes, die durch den Makrorecorder aufgezeichnet werden, in einem Standardmodul abgespeichert werden.
Makros, die hier abgespeichert werden, beginnen in der Regel mit Sub und anschließender Deklaration von Variablen mit Dim.
Ein Beispiel für ein Makro, das in einem Standardmodul abgespeichert wurde, findest du im Blog im Beitrag „Die Do-While-Schleife in VBA“
Wie ein Standardmodul in den Editor eingefügt wird, zeigt Abschnitt 3.1.
2.2 Dokumentmodule
Dokumentenmodule werden oft auch als Objektmodule bezeichnet.
Ein Dokumentmodul umfasst immer DieseArbeitsmappe und ein oder mehrere Tabellenblätter.
Die Anzahl der Module in einem Objekt ist abhängig davon, wie viele Tabellenblätter sich in der Arbeitsmappe befinden. Mit dem Einfügen eines weiteren Tabellenblattes steht automatisch ein weiteres Dokumentmodul zur Verfügung.
Ein Dokumentmodul wird in der Regel für Ereignisprozeduren genutzt. Beispielhaft findest du im Blog einen Beitrag mit dem Titel „VBA: Die Ereignisprozedur „Workbook_Open“ erstellen“.
Makros, die hier abgespeichert werden, beginnen mit Private Sub und anschließender Deklaration von Variablen mit Dim.
Wie ein Dokumentmodul in den Editor eingefügt wird, zeigt Abschnitt 3.2.
2.3 Formularmodule
UserForm-Module ist eine andere Bezeichnung für Formularmodule.
Eine UserForm wird automatisch immer dann angelegt, wenn ein Formularmodul angelegt wird.
Mit einer UserForm ist es möglich, Formulare zur Eingabe von Daten erstellt werden.
Makros, die hier abgespeichert werden, beginnen mit Private Sub.
Ein Beispiel für das Erstellen einer UserForm findest du im Blogbeitrag „VBA: Eine UserForm erstellen„.
Wie ein Formularmodul in den Editor eingefügt wird, zeigt Abschnitt 3.3.
2.4 Klassenmodule
In Klassenmodulen können Prozeduren untergebracht werden, die neue Eigenschaften oder Methoden erzeugen.
Zum Thema Klassen in VBA gibt es im Blog noch keinen Beitrag.
Was sind Klassen?
Klassen sind so etwas wie Vorlagen zu Objekten. Sie enthalten den Programmcode, der die daraus erzeugten Objekte nutzbar macht. Mit Hilfe solch einer Klasse lassen sich beliebig viele gleichartige Objekte erzeugen.
Codes, die in einem Klassenmodul abgespeichert werden, beginnen mit Public Sub.
Wie ein Klassenmodul in den Editor eingefügt wird, zeigt Abschnitt 3.4.
3. Ein Modul einfügen
3.1 Ein Standardmodul einfügen
Rufe im Menü Entwicklertools den VBA-Editor auf.
Du hast jetzt den Editor vor dir.
Wähle dein Projekt aus, im Beispiel soll dies das VBA-Projekt „307 VBA Module“ sein.
Gehe ins Menü „Einfügen“ und wähle „Module“ aus. Es wird nun in der Hierarchie „Module“ angezeigt und das „Modul1“ eingefügt (auf der linken Seite zu sehen).
Auf der rechten Seite des Fensters, dem Codefenster, sind weiterhin zwei Kombifelder zu sehen, hier benannt mit „Allgemein“ und „Deklarationen“.
3.2 Ein Dokumentmodul einfügen
Aktiviere z.B. ein bestimmtes Arbeitsblatt, im Beispiel soll es das Tabellenblatt3 sein.
Rufe im Menü Entwicklertools/Steuerelemente „Code anzeigen“ auf.
Auf der rechten Seite unter dem Kombifeld Allgemein siehst du nun die Auswahlmöglichkeit „Worksheet“, wähle dieses.
Nun kannst du, beginnend mit Private Sub den Code eingeben.
3.3 Ein Formularmodul einfügen
Aktiviere ein bestimmtes Arbeitsblatt.
Rufe den VBA-Editor auf. Wähle im Menübalken „Einfügen“ und klicke dann auf „Userform“.
Auf der linken Seite siehst du nun den Pfad „Formulare“. Darunter ist das Formular „UserForm1“ eingefügt.
Aufgeklappt siehst du die Steuerelemente für den Aufbau der UserForm. Wie du damit arbeiten kannst, wird im Blogbeitrag „VBA: Eine UserForm erstellen“ erläutert.
Einblenden kannst du die Steuerelemente über das Menü „Einfügen“. Wähle dort „Werkzeugsammlung“.
Nun kannst du die UserForm nach deinen Vorstellungen gestalten.
3.4 Ein Klassenmodul einfügen
Aktiviere ein bestimmtes Arbeitsblatt.
Rufe den VBA-Editor auf. Wähle im Menübalken „Einfügen“ und klicke dann auf „Klassenmodul“.
Auf der linken Seite ist nun der Pfad „Klassenmodule“ vorhanden, darunter „Klasse1“ eingefügt.
Auf der rechten Seite links ist „Class“ ausgewählt.
Rechts sind zwei Auswahlmöglichkeiten gegeben, beide werden hier gezeigt.
Einmal „Initialize“ und einmal „Terminate“.
Mit dem Schlüsselwort „New“ im Code wird eine Klasse erzeugt, also die Prozedur „Class_Initialize“ ausgeführt.
Mit der Prozedur „Class_Terminate“ wird eine Klasse zerstört.
Weiter soll die Klassenprogrammierung hier nicht erklärt werden.
Entdecke mehr von Clevercalcul
Melde dich für ein Abonnement an, um die neuesten Beiträge per E-Mail zu erhalten.