Parameterübergabe ByRef oder ByVal

<< Click to Display Table of Contents >>

Parameterübergabe ByRef oder ByVal

Parameter können an Prozeduren als Referenz (ByRef) oder als Wert (ByVal) übergeben werden:

ByRef

Die Übergabe ByRef ("als Referenz") ermöglicht es der aufgerufenen Prozedur, den Wert der übergebenen Variablen zu ändern.
ByRef ist die Standardmethode für die Parameterübergabe und muss daher nicht explizit angegeben werden. Sub Test(j As Integer) ist also gleichbedeutend mit Sub Test(ByRef j As Integer).

ByVal

Bei der Übergabe ByVal ("als Wert") erhält die Prozedur lediglich eine Kopie der Variable, sodass Änderungen am Wert des Parameters innerhalb der Prozedur sich nicht auf die übergebene Variable selbst auswirken.
Die Übergabe als Wert kann bei der Prozedurdefinition festgelegt werden, indem vor dem Parameter das Schlüsselwort ByVal geschrieben wird: Sub Joe(ByVal j As Integer).
Alternativ kann man dies auch beim Aufruf der Prozedur erzwingen, indem man den Parameter in Klammern setzt. Hier wird beispielsweise der Parameter Var3 als Wert übergeben:
SubOne Var1, Var2, (Var3)