Einführung "VBA mit Microsoft Office"

ByRef und ByVal

Herdt EX2003P K9.3/S.111

Argumente, die man in eine Prozedur übergibt, können von der Prozedur verändert zurückgegeben werden. Damit klar ist, welche Argumente eine Prozedur ändert und welche nicht, sollte man sie in der Argumentliste kennzeichnen:

  • ByVal: Als Wert übergeben, d.h. dieses Argument verlässt die Prozedur unverändert
  • ByRef: Als Referenz übergeben, d.h. dieses Argument kann die Prozedur mit einem geänderten Wert verlassen

Innerhalb einer Prozedur können auch ByVal übergebene Argumente sich ändern, beim Verlassen haben sie dann wieder den alten Wert.

Übung 6

Auch Argumente von Funktionen können leider verändert werden. Man sollte aber darauf verzichten, denn das einzige, was eine Funktion definitionsgemäss ändert, ist der Funktionswert.