VBA - PROGRAMMIERUNG - ARRAYS

Public Function QUADER_INHALT_VARIABEL(ParamArray QWerte()) As Double
' Beispiel für Parameter-Array
Dim QAnzahl, i As Integer
QAnzahl = UBound(QWerte) + 1
Select Case QAnzahl
    Case Is >= 3
        QUADER_INHALT_VARIABEL = QWerte(0) * QWerte(1) * QWerte(2)
    Case 2
        QUADER_INHALT_VARIABEL = QWerte(0) * QWerte(1) ^ 2
    Case 1
        QUADER_INHALT_VARIABEL = QWerte(0) ^ 3
    Case 0
        Exit Function
End Select
End Function

Public Function TAGESNAMEN_ARRAY(Optional WDatum) As String
WMonat = IIf(IsMissing(WDatum), Month(Date), Month(WDatum))
If VarType(WDatum) <> 7 Then
    MsgBox "Kein gültiges Datum an die Funktion übergeben !!"
    Exit Function
End If
Dim TAG As Integer
Dim TAG_Array As Variant
TAG_Array = Array("Sonntag", "Montag", "Dienstag", _
"Mittwoch", "Donnerstag", "Freitag", "Samstag")
TAG = WeekDay(WDatum) - 1
TAGESNAMEN_ARRAY = TAG_Array(TAG)
End Function

Public Function TAGESNAMEN_2(Optional WDatum) As String
WMonat = IIf(IsMissing(WMonat), Month(Date), Month(WMonat))
If VarType(WDatum) <> 7 Then
    MsgBox "Kein gültiges Datum an die Funktion übergeben !!"
    Exit Function
End If
Dim TAG As Integer
Dim TAG_Array As Variant
TAG_Array = Array("Montag", "Dienstag", _
"Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag")
TAG = WeekDay(WDatum, vbMonday) - 1
TAGESNAMEN_2 = TAG_Array(TAG)
End Function

Public Function TAGESNAMEN_3(Optional WDatum) As String
WMonat = IIf(IsMissing(WMonat), Month(Date), Month(WMonat))
If VarType(WDatum) <> 7 Then
    MsgBox "Kein gültiges Datum an die Funktion übergeben !!"
    Exit Function
End If
Dim TAG_Array As Variant
TAG_Array = Array("Montag", "Dienstag", _
"Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag")
TAGESNAMEN_3 = TAG_Array(WeekDay(WDatum, vbMonday) - 1)
End Function

Public Function MONATSNAMEN_ARRAY(Optional WDatum As Date) As String
WMonat = IIf(IsMissing(WDatum), Month(Date), Month(WMonat))
If VarType(WDatum) <> 7 Then
    MsgBox "Kein gültiges Datum an die Funktion übergeben !!"
    Exit Function
End If
Dim DMonat As Integer
Dim MonatArray As Variant
MonatArray = Array("Januar", "Februar", "März", _
"April", "Mai", "Juni", "Juli", "August", _
"September", "Oktober", "November", "Dezember")
DMonat = Month(WDatum) - 1
MONATSNAMEN_ARRAY = MonatArray(DMonat)
End Function

Public Function JAHRESZEIT_ARRAY(Optional WMonat) As String
WMonat = IIf(IsMissing(WMonat), Month(Date), Month(WMonat))
If VarType(WDatum) <> 7 Then
    MsgBox "Kein gültiges Datum an die Funktion übergeben !!"
    Exit Function
End If
Dim DJZ As Integer
Dim JZArray As Variant
JZArray = Array("Frühling", "Sommer", "Herbst", "Winter")
DJZ = Month(WDatum)
JAHRESZEIT_ARRAY = ""
Select Case WMonat ' Monatsfälle abklären
    Case 3, 4, 5
        JAHRESZEIT_ARRAY = JZArray(0)
    Case 6, 7, 8
        JAHRESZEIT_ARRAY = JZArray(1)
    Case 9, 10, 11
        JAHRESZEIT_ARRAY = JZArray(2)
    Case 12, 1, 2
        JAHRESZEIT_ARRAY = JZArray(3)
End Select
End Function

Public Sub AdressListe()
Dim Adress(5) ' klassisches dimensioniertes Arrays
Adress(0) = "MERZ"
Adress(1) = "MÜLLER"
Adress(2) = "SCHULZE"
Adress(3) = "MICHEL"
Adress(4) = "SCHMITZ"
Adress(5) = "TRALALA"
MsgBox "NAME = " & Adress(3)
End Sub


Public Sub AdressListe2()
Dim Adress(5, 1) ' klassisches dimensioniertes Arrays
Adress(0, 0) = "MERZ"
Adress(0, 1) = "Heike"
Adress(1, 0) = "MÜLLER"
Adress(1, 1) = "Willi"
Adress(2, 0) = "SCHULZE"
Adress(2, 1) = "Georgi"
Adress(3, 0) = "MICHEL"
Adress(3, 1) = "Heidi"
Adress(4, 0) = "SCHMITZ"
Adress(4, 1) = "Dieter"
Adress(5, 0) = "TRALALA"
Adress(5, 1) = "Fidelbumm"
MsgBox "NAME = " & Adress(4, 1)
End Sub