Grundlegendes zu benannten und optionalen Argumenten

Wenn Sie eine Sub - oder Function-Prozedur aufrufen, können Sie Argumente positionell in der Reihenfolge angeben, in der sie in der Definition der Prozedur angezeigt werden, oder Sie können die Argumente nach Namen ohne Berücksichtigung der Position angeben.

Die folgende Sub-Prozedur akzeptiert beispielsweise drei Argumente.

Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date) 
 Debug.Print strName, intAge, dteBirth 
End Sub

Sie können diese Prozedur aufrufen, indem Sie die Argumente an der richtigen Position angeben, die jeweils durch ein Komma getrennt sind, wie im folgenden Beispiel gezeigt.

PassArgs "Mary", 29, #2-21-69# 

Sie können diese Prozedur auch aufrufen, indem Sie benannte Argumente durch Kommas getrennt angeben.

PassArgs intAge:=29, dteBirth:=#2/21/69#, strName:="Mary" 

Ein benanntes Argument besteht aus dem Namen des Arguments gefolgt von einem Doppelpunkt und einem Gleichheitszeichen (:=) sowie dem Wert des Arguments.

Benannte Argumente sind besonders nützlich, wenn Sie eine Prozedur aufrufen, die über optionale Argumente verfügt. Bei Verwendung von benannten Argumenten müssen Sie keine Kommas einfügen, um fehlende positionelle Argumente zu kennzeichnen. Wenn Sie benannte Argumente nutzen, können Sie leichter verfolgen, welche Argumente Sie übergeben und welche Sie weggelassen haben.

Optional arguments are preceded by the Optionalkeyword in the procedure definition. You can also specify a default value for the optional argument in the procedure definition. For example:

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA") 
. . . 
End Sub

Wenn Sie eine Prozedur mit einem optionalen Argument aufrufen, können Sie wählen, ob das optionale Argument angegeben werden soll. Falls Sie das optionale Argument nicht angeben, wird der Standardwert verwendet (falls vorhanden). Wenn kein Standardwert angegeben wird, wäre das Argument für jede Variable des angegebenen Typs.

Das folgende Verfahren enthält zwei optionale Argumente, die varRegion Variablen und varCountry . Die IsMissing-Funktion bestimmt, ob ein optionales Variant-Argument an die Prozedur übergeben wurde.

Sub OptionalArgs(strState As String, Optional varRegion As Variant, _ 
Optional varCountry As Variant = "USA") 
 If IsMissing(varRegion) And IsMissing(varCountry) Then 
 Debug.Print strState 
 ElseIf IsMissing(varCountry) Then 
 Debug.Print strState, varRegion 
 ElseIf IsMissing(varRegion) Then 
 Debug.Print strState, varCountry 
 Else 
 Debug.Print strState, varRegion, varCountry 
 End If 
End Sub

Sie können diese Prozedur aufrufen, indem Sie benannte Argumente verwenden, wie im folgenden Beispiel gezeigt.

OptionalArgs varCountry:="USA", strState:="MD" 
 
OptionalArgs strState:= "MD", varRegion:=5 

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.