Die Ausgangslage
In Ihrem VBA-Code lagern Sie häufig verwendete Aufgaben in Prozeduren aus. Diesen Prozeduren teilen Sie die notwendigen Informationen über Parameter mit. Hierin liegt das Problem.
Es stellen sich folgende Fragen:
- Welche Werte können für einen Parameter übergeben werden
- Welcher Wert hat welche Bedeutung
Wenn Sie die Funktion gerade erst geschrieben haben, sind diese Fragen noch sehr leicht zu beantworten. Die Antworten haben Sie noch im Kopf. Wenn die Erstellung der Funktion aber schon etwas zurück liegt und Ihre Erinnerung dementsprechend verblasst ist, können Sie diese Fragen nur beantworten, wenn Sie einen Blick in den VBA-Code der Funktion werfen. Dort finden Sie dann (hoffentlich) einen ausführlichen Kommentar, der Ihnen die Wirkung der einzelnen Werte erläutert.
Welchen Weg geht Access
Es ist aufwändig und gegebenenfalls auch fehleranfällig, auf diesem Weg an die Informationen über Parameter zu gelangen. Spätestens jetzt werden Sie neidisch auf die in Access und VBA eingebauten Funktionen schauen. Wenn Sie eine solche Funktion eintippen, zeigt Ihnen der VBA-Editor mittels IntelliSense häufig eine Liste der möglichen Werte für einen Parameter an (siehe Bild 1).

Bild 1: IntelliSense zeigt die möglichen Werte für einen Parameter an.
An dieser Stelle stellen Sie sich vielleicht folgende Fragen:
- Wie macht der VBA-Editor das
- Kann ich dieses Verhalten auch für meine selbst geschriebenen Prozeduren herbeiführen
Die Lösung liegt in der Antwort auf die erste Frage. Der VBA-Editor verwendet für die Realisierung dieser Funktionalität Aufzählungstypen, so genannte Enumerationen. Genau das ist auch die Lösung für Ihr Problem: verwenden Sie eine Enumeration.
Im ersten Schritt erstellen Sie eine Enumeration für die möglichen Elemente, die als Parameterwert übergeben werden können. Im zweiten Schritt deklarieren Sie dann den Parameter in Ihrer Funktion vom Typ Ihrer soeben definierten Enumeration.
Eine Enumeration erstellen …
Eine Enumeration ist schnell erstellt:
Public Enum fwcFarbWert fwcRot = 1 fwcGrün = 2 fwcBlau = 3 End Enum
… und verwenden
Die so definierte Enumeration können Sie jetzt bei der Deklaration Ihrer Funktion einem Parameter als Datentyp zuweisen.
Private Sub FarbeZuweisen(Farbe As fwcFarbWert) Dim lngFarbe As Long lngFarbe = Farbe ''... End Sub
Wenn Sie jetzt einen Aufruf der Prozedur FarbeZuweisen in das Direktfenster eintippen, erhalten Sie IntelliSense-Unterstützung (siehe Bild 2).

Bild 2: IntelliSense bei einer selbst definierten Funktion
Namensregeln für Enumerationen
Um den Namen für eine Enumeration festzulegen, suchen Sie einen Begriff, der den Inhalt Ihrer Aufzählung möglichst genau beschreibt. Für den Namen bietet es sich an, die Einzahl dieses Begriffs zu verwenden.
Die Enumeration zählt zwar eine Mehrzahl gleichartiger Elemente auf. Wenn Sie Ihre Enumeration aber später im Code verwenden, brauchen Sie nur einen Wert aus Ihrer Aufzählung. Das ist der Grund, warum der Name der Enumeration aus der Einzahl des Begriffs besteht.