VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Enum-Anweisung

Deklariert einen Typ für eine Aufzählung.

Syntax

[Public | Private] Enum Name

Elementname [= Konstantenausdruck]

Elementname [= Konstantenausdruck]

. . .

End Enum

Die Syntax der Enum-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
Public Optional. Legt fest, daß der Enum-Typ im gesamten Projekt sichtbar sein soll. Enum-Typen sind standardmäßig Public.
Private Optional. Legt fest, daß der Enum-Typ nur innerhalb des Moduls sichtbar sein soll, in dem er angezeigt wird.
Name Erforderlich. Der Name des Enum-Typs. Name muß ein zulässiger Visual Basic-Kennzeichner sein und wird beim Deklarieren von Variablen oder Parametern vom Enum-Typ als Typ angegeben.
Elementname Erforderlich. Ein zulässiger Visual Basic-Kennzeichner, der den Namen angibt, der für ein konstituierendes Element des Enum-Typs verwendet werden soll.
Konstantenausdruck Optional. Wert des Elements (ergibt eine Long). Wird Konstantenausdruck nicht angegeben, so wird entweder der Wert Null (falls es der erste Elementname ist) oder der Wert des unmittelbar vorangehenden Arguments Elementname plus 1 zugewiesen.

Anmerkungen

Aufzählvariablen sind Variablen, die mit einem Enum-Typ deklariert werden. Sowohl Variable als auch Parameter können mit einem Enum-Typ deklariert werden. Die Elemente des Enum-Typs werden in der Enum-Anweisung auf konstante Werte initialisiert. Die zugewiesenen Werte können zur Laufzeit nicht geändert werden. Sie können sowohl positive als auch negative Werte annehmen. Beispiel:

Enum SicherheitsLevel
    IllegalerEintrag = -1
    SicherheitsLevel1 = 0
    SicherheitsLevel2 = 1
End Enum

Eine Enum-Anweisung kann nur auf Modulebene angegeben werden. Sobald der Enum-Typ definiert ist, kann er zur Deklaration von Variablen, Parametern oder Prozeduren, die diesen Typ zurückgeben, verwendet werden. Sie können den Namen eines Enum-Typs nicht mit einem Modulnamen qualifizieren. Public Enum-Typen in einem Klassenmodul sind keine Elemente der Klasse, können aber in die Klassenbibliothek geschrieben werden. Enum-Typen, die in Standardmodulendefiniert werden, werden nicht in Typenbibliotheken geschrieben. Public Enum-Typen desselben Namens können nicht sowohl in Standardmodulen als auch in Klassenmodulen verwendet werden, da diese denselben Namensraum gemeinsam haben. Wenn zwei Enum-Typen in unterschiedlichen Bibliotheken denselben Namen, aber unterschiedliche Elemente haben, hängt die Referenz auf eine Variable des Typs davon ab, welche Typenbibliothek in Verweise die höhere Priorität hat.

Sie können einen Enum-Typ nicht als Ziel in einem With-Block verwenden.