Freigeben über


Effizientes Übergeben von Argumenten

Alle Argumente werden als Verweis an Prozeduren übergeben, es sei denn, Sie geben etwas anderes an. Dies ist effizient, da alle Argumente, die als Verweis übergeben werden, die gleiche Zeit und dieselbe Menge An Speicherplatz (4 Bytes) innerhalb einer Prozedur benötigen, unabhängig vom Datentyp des Arguments.

Sie können ein Argument mit Wert übergeben, wenn Sie das Schlüsselwort ByVal in die Deklaration der Prozedur einfügen. Argumente, die vom Wert übergeben werden, verbrauchen je nach Datentyp des Arguments 2 bis 16 Bytes innerhalb der Prozedur. Bei größeren Argumenten kann die Übergabe mit Wert etwas mehr Zeit in Anspruch nehmen als bei kleineren Argumenten. Daher sollten die String - und Variant -Datentypen generell nicht mit Wert übergeben werden.

Beim Übergeben eines Arguments mit Wert wird die ursprüngliche Variable kopiert. Änderungen des Arguments innerhalb der Prozedur spiegeln sich nicht in der ursprünglichen Variable wider. Beispiel:

Function Factorial(ByVal MyVar As Integer) ' Function declaration. 
    MyVar = MyVar - 1 
    If MyVar = 0 Then 
        Factorial = 1 
        Exit Function 
    End If 
    Factorial = Factorial(MyVar) * (MyVar + 1) 
End Function 
 
' Call Factorial with a variable N.
Sub Test()
    N = 5 
    Debug.Print Factorial(N) ' Displays 120 (the factorial of 5) 
    Debug.Print N ' Displays 5. 
End Sub

Ohne das Einfügen von ByVal in die Funktionsdeklaration würden für die vorherigen Print -Anweisungen 1 und 0 angezeigt werden. Dies liegt daran, dass MyVar dann auf die Variable Sverweist, die um 1 reduziert wird, bis sie gleich 0 ist.

Da ByVal eine Kopie des Arguments erstellt, können Sie eine Variante an die Factorial-Funktion übergeben. Das Übergeben einer Variante nach Verweis ist nicht möglich, wenn die Prozedur, mit deren Hilfe das Argument deklariert wird, einem anderen Datentyp entspricht.

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.