Konstanten & Aufzählungen

Gelegentlich steht bei einer Variablen von vornherein fest, dass sie ihren Wert niemals ändern soll. In Visual Basic für Applikationen kann man dazu KonstanteKonstanten deklarieren.

Option Explicit

Sub
Mathe() Const Pi = 3.1415926535897932384626433832795 Const MwSt = 0.19 Const Nutzername = "Hans Wurst" Debug.Print Pi * 2 End Sub

Konstanten werden mit Const deklariert und bekommen gleich in der Deklaration ihren festen Wert zugewiesen. Außerdem kann man Konstanten zwar einen Datentyp zuweisen - aber wenn man das nicht macht, bekommt die Konstante automatisch einen Datentyp, der am besten für den Wert geeignet ist. Darin unterscheidet sich eine Konstante von einer Variable: Eine Variable ohne Angabe eines Datentyps bekommt den Typ Variant zugewiesen.

Manchmal braucht man eine Reihe zusammenhängender Konstanten. VBA bietet dafür EnumAufzählungen, auch Enumerationen genannt, an. Aufzählungen können nur im Deklarationsbereich, nicht in einer Prozedur deklariert werden, und können nur Zahlen vom Typ Long aufnehmen. Man kann auch darauf verzichten, diesen Konstanten Werte zuzuweisen; dann bekommt die erste Konstante den Wert „0“, die zweite „1“ usw. Eine Aufzählung kann anschließend genau wie ein Datentyp genutzt werden:

Option Explicit

Enum Farbe
    Karo = 9
    Herz = 10
    Pik = 11
    Kreuz = 12
    Grand = 24
End Enum

Sub Skat() Dim Spiel As Farbe Spiel = Herz End Sub

Praktisch an Aufzählungen ist nicht nur, dass man sich die entsprechenden Werte nicht mehr merken muss, sondern auch, dass IntelliSense beim Tippen die Konstanten der Aufzählung anbietet.

In VBA selbst sind intern schon einige Auflistungen enthalten, wie z. B. VbTriState oder VbDayOfWeek. Diese Konstanten sind für interne Funktionen von VBA gedacht, können aber natürlich nach Belieben auch anderweitig eingesetzt werden. Die meisten Applikationen bringen außerdem zahlreiche weitere eigene Auflistungen mit.