Paso de parámetros por referencia y por valor
En las funciones y en los procedimientos, el paso de los parámetros puede dividirse en dos:
Por referencia
Es el paso de parámetros por default en Visual Basic donde cualquier cambio de valor que sufra un parámetro dentro de la función o del procedimiento también se produce en el argumento correspondiente debido a que se está trabajando con la variable original.
Por valor
Cuando se llama a una función o a un procedimiento, se puede especificar que el valor de un argumento no sea cambiado, poniendo al argumento entre paréntesis en la llamada.
En el paso de parámetros por valor, se crea una nueva variable a la que se le copia el valor de la variable original, de tal forma que la variable original no sufre cambios pues se trabaja con la copia y ésta es la que se manipula.
Explícitamente se puede declarar dentro de la función o procedimiento si el paso de parámetros es por valor utilizando la palabra reservada byVal o byRef para un paso de parámetros por referencia.
Fuente: Apuntes de Programación con lenguajes de cuarta generación de la FCA de la UNAM