VBA-Beispiele > Allgemein > Makros und Funktionen

Tipp 93: Wo gibt man die Makros ein?

Wo gibt man die Makros ein?


Das herausstechendste Merkmal ist, dass die Programmiersprache VBA bei den Office-Anwendungen fast einheitlich ist; das Vorgehen ist hier also bei Excel, Word, usw. gleich.

Die Eingabe der Makros erfolgt im sogenannten VBA-Editor, den man mit Alt + F11 aufruft. Nach dem Aufruf erscheint normalerweise erst ein leeres Fenster, in dem sich oben links der Projekt-Explorer befindet (wenn nicht, im Menü Ansicht einblenden).

Projekt-Explorer

In diesem Projekt-Explorer sind alle offenen Excel-Dateien aufgelistet. Das heißt, wenn man in einer bestimmten Datei arbeiten möchte, muss sie vorher dort aktiviert werden. Durch einen Doppelklick auf eine Datei oder einen Klick auf das Pluszeichen vor der Datei werden die einzelnen Elemente der Datei - wie im Windows-Explorer - sichtbar. Bei einer sonst leeren Datei dürften das nur die Einträge für DieseArbeitsmappe und für die einzelnen Tabellen sein. Das heißt, dass die einzelnen Module für die Makros erst erzeugt werden müssen.

Userform

Manchmal bietet es sich an, eigene Masken oder Bedienungselemente zu erstellen. Dies erfolgt in VBA mit Userformen, die man über das Menü Einfügen - Userform erstellt. Dort kann man seine eigenen Elemente zeichnen und diese programmieren.

Klassenmodule für Tabellen oder die Mappe

Soll ein Makro direkt einer Tabelle oder der Mappe zugeordnet werden, erreicht man das Erstellen des entsprechenden Klassenmoduls, indem man im Projekt-Explorer einen Doppelklick auf das gewünschte Element ausführt. Beachten Sie dabei aber, dass diese Klassenmodule normalerweise nur dann gebraucht werden, wenn bestimmte Ereignisse des Elements Öffnen, Speichern, Eingaben, Markieren, usw.) abgefangen, also darauf reagiert werden sollen. Im Normalfall ist es besser, allgemeine Module zu verwenden.

Allgemeines Modul

Normalerweise beginnt man mit Makros in allgemeinen Modulen, wo auch der Makrorecorder seine Makros aufzeichnet. Diese allgemeinen Module sind - wie der Name besagt - allgemein verfügbar und es kann von überall aus darauf zugegriffen werden. Ein solches Modul erzeugt man mit dem Menü Einfügen - Modul. Dadurch hat man ein leeres weißes Blatt, in dem man mit dem Makros beginnen kann. Im Projekt-Explorer ist nun auch der neue Eintrag Modul1 unter dem Sammeleintrag Module enthalten. Dies sollte für den Anfang der wichtigste Ausgangspunkt sein, die anderen Module werden dort benannt, wo sie gebraucht werden. Eine schematische Darstellung der Zusammenhänge im VBA-Editor finden Sie auf der folgenden Abbildung:

Zusammenfassung

Bei der Gesamtheit der Elemente einer Mappe oder eines Dokumentes spricht man vom VBA-Projekt.

Dieses kann zum Beispiel aus folgenden Elementen bestehen:

  • Excel- bzw. Word-Objekte (Arbeitsmappe, einzelne Tabellen, Document) und die zugehörigen Ereignisprozeduren,
  • Userformen und die zugehörigen Prozeduren,
  • Module,
  • Klassenmodule (siehe Ereignisprozeduren)

[Einzellink]

Tipp 94: Eingabe von Makros/benutzerdefinierten Funktionen

Was muss ich bei der Eingabe von Makros und Funktionen beachten?


Bei allen Varianten kann/muss zuerst mit der Tastenkombination Alt + F11 in den VBA-Editor gewechselt werden.

Normales Makro (Sub Makroname()):

  • Klick im Projektexplorer auf die Mappe/das Dokument, wo das Makro eingefügt werden soll
  • Menü Einfügen - Modul
  • Makro schreiben/einfügen
  • speichern

Ereignisprozedur (Makro, das bei Änderungen der Mappe, des Dokuments bzw. des Blattes ausgeführt werden soll):

  • Doppelklick im Projektexplorer auf die Mappe (DieseArbeitsmappe) bzw. das Dokument (ThisDocument), bei deren/dessen Änderung das Makro ausgeführt werden soll (erkennbar am Makronamen, der mit Private Sub Workbook_ ... oder Private Sub Document_ ... beginnt) oder Doppelklick auf die Tabelle, bei deren Änderung das Makro ausgeführt werden soll (oft erkennbar am Makronamen, der mit Private Sub Worksheet_ beginnt)
  • im linken DropDown Objekt (Allgemein) das Objekt auswählen (Workbook, Document, Worksheet)
  • im rechten DropDown das Ereignis auswählen
  • zwischen die automatisch eingefügten Zeilen das Makro schreiben/einfügen
  • speichern

Makro, das beim Klick auf ein Userform-Element ausgeführt werden soll:

  • Doppelklick auf das Userform-Element, bei dessen Betätigung das Makro ausgeführt werden soll (erkennbar am Makronamen, der z. B. mit Private Sub CommandButton1_ ... beginnt)
  • zwischen die automatisch eingefügten Zeilen das Makro schreiben/einfügen
  • Makro schreiben/einfügen
  • speichern

Benutzerdefinierte Funktionen in Excel:

Benutzerdefinierte Funktionen werden in ein allgemeines Modul eingegeben. Die Unterschiede zu einem Makro bestehen darin, dass

  • die Excel-Oberfläche nicht verändert werden kann (z. B. Zellen formatieren) und
  • die Funktion mit Function Funktionsname() beginnt.

Häufig wird die Frage gestellt, wie eine benutzerdefinierte Funktion in allen Mappen zur Verfügung steht. Dafür gibt es zwei Möglichkeiten:

Speichern in der personl.xls:

Die Mappe mit der Funktion kann in der Persönlichen Arbeitsmappe personl.xls in das Start-Verzeichnis von Excel gespeichert werden. Diese Variante hat jedoch einige Nachteile. So wird diese Datei bei jedem Start von Excel geöffnet und ausgeblendet, so daß ein zusätzliches Fenster vorhanden ist.

Speichern als Add-In:

Die benutzerdefinierte Funktion kann in eine leere Mappe eingegeben und anschließend als Add-In gespeichert werden (Speichern unter - Dateityp: Add-In). Anschließend kann im Menü Extras der Add-In-Manager aufgerufen und das neue Add-In mit der Funktion eingebunden werden.

Ein Beispiel für eine benutzerdefinierte Funktion:

Diese Funktion berechnet die Kalenderwoche eines Datums. In die Zelle muß dann nur noch eingegeben werden: =kw(A1)

Weitere benutzerdefinierte Funktionen finden Sie auf Selbsterstellte Funktionen.

 

[Einzellink]

 

Das Chemtrailhandbuch von Jörg Lorenz mit einem Vorwort von Jörg Kachelmann

Susanne Hammann-Sayilir - Modedesign  Modeillustration