Parámetros por valor y por referencia

Hay dos maneras de pasar parámetros a una función, por valor o por referencia. Para explicar esto y que se comprenda en profundidad, repasaremos conceptos de hardware…

Cuando se declara una variable, el sistema operativo reserva un espacio de memoria en la memoria RAM. Cuando pasamos una variable a una función por valor, el sistema operativo reserva otro espacio de memoria distinto, de modo que los cambios que sufra la variable en la función no afectarán a la variable de fuera de la función, aunque tengan el mismo nombre, ya que son variables distintas con espacios de memoria distintos. Por el contrario, cuando pasamos una variable a una función por referencia, realmente no estamos pasando el valor de la variable, sino la posición del espacio de memoria de esa variable (a esto se le llama puntero). De acuerdo a esto, los cambios que sufra la variable dentro de la función afectarán a la variable fuera de la función, aunque tengan distintos nombres, ya que es la misma variable. A todo esto se le denomina Ámbito de las Variables.

 

En VBA los parámetros pasan por defecto por referencia, si deseamos que pasen por valor hay que  indicarlo en la cabecera de la función o procedimiento.

‘Paso por valor
Public Sub pp (ByVal v as Integer)

End Sub

‘Paso por referencia
Public Sub pp (ByRef v as Integer)

End Sub

‘o también
Public Sub pp (v as Integer)

End Sub

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: