Argumentübergabe nach Position und Namen

Aktualisiert: November 2007

Wenn Sie eine Sub- oder Function-Prozedur aufrufen, können Sie Argumente durch die Position übergeben, d. h. in der Reihenfolge, in der sie in der Prozedurdefinition aufgeführt werden, oder durch Namen unabhängig von der Position.

Bei der Übergabe eines Arguments durch Namen geben Sie den deklarierten Namen des Arguments, gefolgt von einem Doppelpunkt, einem Gleichheitszeichen (:=) und dem Argumentwert an. Benannte Argumente können in beliebiger Reihenfolge angegeben werden.

Die Sub-Prozedur im folgenden Beispiel übernimmt z. B. drei Argumente:

Sub studentInfo(ByVal name As String, _
       Optional ByVal age As Short = 0, _
       Optional ByVal birth As Date = #1/1/2000#)

  Debug.WriteLine("Name = " & name & _
                "; age = " & CStr(age) & _
                "; birth date = " & CStr(birth))
End Sub

Bei Aufrufen dieser Prozedur können Sie die Argumente durch Position, durch Namen oder unter Verwendung beider Methoden bereitstellen.

Übergeben von Argumenten durch Position

Die studentInfo -Prozedur kann, wie im folgenden Beispiel gezeigt, mit durch Position übergebenen, durch Kommas getrennten Argumenten aufgerufen werden:

Call studentInfo("Mary", 19, #9/21/1981#)

Wenn Sie ein optionales Argument in einer positionellen Argumentliste auslassen, müssen Sie seinen Platz mit einem Komma freihalten. Im folgenden Beispiel wird studentInfo ohne das age -Argument aufgerufen:

Call studentInfo("Mary", , #9/21/1981#)

Übergeben von Argumenten durch Namen

Die studentInfo -Prozedur kann auch, wie im folgenden Beispiel gezeigt, mit durch Namen übergebenen, durch Kommas getrennten Argumenten aufgerufen werden:

Call studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")

Mischen von Argumenten durch Position und durch Namen

In ein und demselben Prozeduraufruf können Sie Argumente sowohl durch Position als auch durch Namen angeben, wie im folgenden Beispiel gezeigt:

Call studentInfo("Mary", birth:=#9/21/1981#)

Im vorhergehenden Beispiel muss der Platz des ausgelassenen age -Arguments nicht durch ein zusätzliches Komma freigehalten werden, da birth durch Namen übergeben wird.

Wenn Sie Argumente durch Position und durch Namen angeben, müssen alle positionellen Argumente zuerst aufgeführt werden. Sobald Sie ein Argument durch Namen angeben, müssen auch alle darauf folgenden Argumente durch Namen übergeben werden.

Angeben optionaler Argumente durch Namen

Argumente durch Namen zu übergeben ist vor allem dann sinnvoll, wenn eine Prozedur mit mehr als einem optionalen Argument aufgerufen wird. Bei der Angabe von Argumenten durch Namen müssen fehlende positionelle Argumente nicht durch aufeinander folgende Kommas gekennzeichnet werden. Außerdem erleichtert die Argumentübergabe durch Namen den Überblick über die übergebenen und die weggelassenen Argumente.

Beschränkungen bei der Bereitstellung von Argumenten durch Namen

Auch bei der Argumentübergabe durch Namen müssen erforderliche Argumente eingegeben werden. Weggelassen werden dürfen nur optionale Argumente.

Parameterarrays können nicht durch Namen übergeben werden, da für Parameterarrays beim Aufrufen der Prozedur eine unbestimmte Anzahl von durch Kommas getrennten Argumenten bereitgestellt wird und der Compiler einem Namen immer nur ein Argument zuordnen kann.

Siehe auch

Aufgaben

Gewusst wie: Übergeben von Argumenten an eine Prozedur

Gewusst wie: Übergeben von Argumenten an eine Prozedur durch Namen

Konzepte

Prozeduren in Visual Basic

Parameter und Argumente von Prozeduren

Übergeben von Argumenten als Wert und als Verweis

Optionale Parameter

Parameterarrays

Referenz

Optional (Visual Basic)

ParamArray