Wenn Sie unter VBA eine Prozedur oder eine Funktion definieren, enthält diese immer eine feste Anzahl von Parametern. Diese können Sie auch als optional deklarieren, sodass tatsächlich weniger Werte übergeben werden als Parameter vorhanden sind. Was aber, wenn Sie den Spieß einmal umdrehen und mehr Werte als vorhandene Parameter übergeben wollen – und das auch noch flexibel Dann kommt die VBA ParamArray-Auflistung ins Spiel. In diesem Beitrag schauen wir uns an, was Sie damit machen können.
Parameter und optionale Parameter
Normalerweise legen Sie für eine Prozedur oder Funktion, nachfolgend als Routine bezeichnet, die Anzahl der Parameter genau fest:
Public Sub BeispielParameter(strText As String, lngZahl As Long) Debug.Print strText Debug.Print lngZahl End Sub
Der Aufruf erfolgt dann mit der exakten Zahl an Parametern:
BeispielParameter "Beispieltext", 123
Sie können auch optionale Parameter definieren, die Sie mit dem Schlüsselwort Optional versehen und die sich immer am Ende der Parameterliste befinden müssen:
Public Sub BeispielOptionaleParameter( strText As String, Optional lngZahl As Long) Debug.Print strText Debug.Print lngZahl End Sub
Diese Prozedur können Sie so aufrufen:
BeispielOptionaleParameter "Beispieltext", 123
Sie können den zweiten Parameter aber auch weglassen:
BeispielOptionaleParameter "Beispieltext"
Die Routine verwendet dann einen Standardwert, den Sie angeben können oder auch nicht. Wenn Sie ihn nicht angeben, wird bei String-Variablen eine leere Zeichenkette, bei Zahlen der Wert 0 und bei Boolean-Werten False angenommen.