¿Cómo crear argumentos opcionales en VBA?
Desarrollado por: Víctor Espichán Avila
proyecto_003_ArgumentosOpcionalesEnVBA_vcea
El presente proyecto tiene por finalidad demostrar que se pueden utilizar argumentos opcionales en la creación de funciones en VBA, en ese sentido se ha implementado una función con nombre AreaTrapecio, la cual requiere 3 argumentos obligatorios y 1 opcional, los cuales son los siguientes:
- Base mayor, corresponde a la mayor base de la figura geométrica denominada trapecio.
- Base menor, corresponde a la menor base de la figura geométrica denominada trapecio.
- Altura, corresponde a la distancia perpendicular en ángulo de 90° que separa a la base mayor de la base menor.
- Tipo, corresponde a un argumento boolean, el cual puede tomar valor 0 o 1 y se le ha asignado como opcional, es decir que puede o no estar al momento de ejecutar la función.
(Para mayor visualización de la imagen, hacer click en la misma)
Si se digita la función en la celda Excel sin el último argumento “tipo”, se mostrará por defecto el área del trapecio en la celda con dos decimales por defecto, pero si se digita el cuarto argumento de la referencia con valor 0 mostrará el área del trapecio con dos decimales, mientras si el cuarto argumento se le asigna valor 1, mostrará el área del trapecio con cifras enteras sin decimales.
Cabe precisar, que el argumento opcional se ha definido en la función con la palabra reservada Optional y se ha asignado el tipo de variable Boolean. Así mismo, se está haciendo uso de la estructura select case, para organizar adecuadamente el algoritmo. Además, se debe tener en cuenta que se visualizará un mensaje al momento de consignar cualquier de las dos opciones en el último argumento.
Por lo tanto, se está demostrando que el último argumento es opcional para que la función pueda procesar los datos y emitir el resultado final.
Function AreaTrapecio(BaseMayor As Double, BaseMenor As Double, Altura As Double, Optional Tipo As Boolean = 0)
Código VBA:
Function AreaTrapecio(BaseMayor As Double, BaseMenor As Double, Altura As Double, Optional Tipo As Boolean = 0)
'Desarrollado por Víctor Espichán Avila
Select Case Tipo
Case 0
'Permite encontrar el area del trapecio con cifras decimales
Trapecio = (Altura / 2) * (BaseMayor + BaseMenor)
AreaTrapecio = Format(Trapecio, "00.00") & " " & "unidades cuadradas"
MsgBox ("Usted está calculando el área del trapecio con dos decimales de aproximación")
Case 1
'Permite encontrar el area del trapecio con cifras exactas
Trapecio = (Altura / 2) * (BaseMayor + BaseMenor)
AreaTrapecio = Format(Trapecio, "00") & " " & "unidades cuadradas"
MsgBox ("Usted está calculando el área del trapecio con una aproximación a cifras enteras")
End Select
End Function
(Para mayor visualización de la imagen, hacer click en la misma)
20/04/2014 a las 9:02 pm
Muy interesante. La utilización de argumentos opcionales lleva a otro nivel a las funciones definidas por el usuario. Estos argumentos opcionales pueden hacer que la función se vuelva mas especifica y eficiente.
20/10/2019 a las 8:30 am
Muy Buena Explicación. Saludos