Como nombrar los argumentos de una función

Cuando insertamos cualquier función en Excel podemos observar que los argumentos tienen un nombre.


Aquellos que están en negrita son argumentos obligatorios y los que están sin negrita son argumentos opcionales. Cuando creamos una función definida por el usuario hemos de establecer el nombre de los argumentos como ya explicamos en una nota anterior. El nombre de los argumentos se ha de cambiar en el propio código.

En el siguiente ejemplo hemos creado una función denominada SumaRaizCuadrada que devuelve la suma de las raíces cuadradas de cada número que introduzcamos.

Function SumaRaizCuadrada(Número1, Número2) As Double

If Número1 < 0 Then
Exit Function
End If
If Número2 < 0 then
Exit Function

Else
A = Sqr(Número1)
B = Sqr(Número2)
SumaRaizCuadrada = A + B
End If

End Function

En este caso, hemos establecido justo después del nombre de la función entre paréntesis los nombres de los argumentos, llamados Número1 y Número2. Podríamos crear más argumentos escribiendo una coma y el nombre del siguiente justo después de Número2.

Hay que recordar que las funciones al ser procedimientos siempre hay que escribirlas en un módulo. Por tanto, desde el editor VBA

  • Pulsamos F11
  • Seleccionamos menú Insertar – Módulo
  • Escribimos el código

Nuestra función aparecerá, por defecto, en la categoría Definidas por el usuario


Si pulsamos Aceptar veremos como se muestra el número de argumentos dados a la función con el nombre respectivo.


Vemos los dos argumentos creados bajo el nombre Número1 y Número2 y como la función calcula primero la raíz cuadrada del argumento Número1 y luego las del argumento Número2 para posteriormente devolver la suma de ambas.

Como hemos explicado al principio de esta nota las funciones contienen argumentos obligatorios escritos en negrita y argumentos opcionales. Si queremos crear argumentos opcionales hemos de escribir la palabra Optional delante de ellos.

Function SumaRaizCuadrada(Número1, Número2, Optional Número3) As Double

If Número1 < 0 Then
Exit Function
End If
If Número2 < 0 then
Exit Function

Else
A = Sqr(Número1)
B = Sqr(Número2)
C = Sqr(Número3)
SumaRaizCuadrada = A + B + C
End If

End Function

Como podemos ver, hemos añadido justo detrás de Número2 el argumento opcional y posteriormente hemos añadido más código para que la función tenga en cuenta este tercer argumento.



Esta función también podría escribirse de la siguiente manera

Function SumaRaizCuadrada(Número1, Número2, Optional Número3) As Double
If Número1 < 0 Then
Exit Function
End If
If Número2 < 0 then
Exit Function

Else
SumaRaizCuadrada = Sqr(Número1) + Sqr(Número2) + Sqr(Número3)
End If

End Function

Una vez resuelto el problema de la creación de parámetros de una función definida por el usuario, puede que no queramos que esta se muestre en la Categoría Definidas por el usuario. En una nota futura mostraremos como incluir nuestra función en la categoría deseada.

0 comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Top WordPress Themes