Como hacer que una función en donde unos de sus parámetros muestre un lista de opciones para seleccionar

Quisiera crear una funcione ne vba Excel. En donde uno de los parámetro me muestra un lista de opciones para elegir, como lo hace en la función msgbox en su parámetro estilo.

Respuesta
3

Lo puedes hacer declarando Enumeraciones https://docs.microsoft.com/es-es/office/vba/language/reference/user-interface-help/enum-statement 

Por ejemplo, si declaras la siguiente enumeración:

Enum eNacionalidad
NacEspañol
NacIngles
NacFrances
NacItaliano
NacOtro
End Enum

Y creas una función personalizada como ésta:

Function SaludoInter(elNombre As String, laNacionalidad As eNacionalidad) As String
Select Case laNacionalidad
    Case nacEspañol
        SaludoInter = "¡Buenos días, " & elNombre & "!"
    Case nacIngles
        SaludoInter = "Good morning, " & elNombre & "!"
    Case nacFrances
        SaludoInter = "¡Bonjour, " & elNombre & "!"
    Case nacItaliano
        SaludoInter = "¡Buongiorno, " & elNombre & "!"
    Case Else
        SaludoInter = " Lo siento, " & elNombre & ", no hablo tu idioma"
End Select
End Function

Cuando la llames para asignarle los parámetros de entrada, al llegar al segundo (la nacionalidad), te mostrará las opciones creadas en la enumeración:

Debes tener en cuenta, como dice en el enlace de ayuda, que los valores de la enumeración son todos numéricos. Si no le asignas explicitamente valor a cada opción, la primera tomará el valor 0, la segunda 1, la tercera 2...(sería el caso del ejemplo), pero puedes asignarles tú valores específicos (consecutivos o no) a cada opción, por ejemplo, podría haber escrito:

Enum eNacionalidad
nacEspañol=5
nacIngles=20
nacFrances=300
nacItaliano= 500
nacOtro=666
End Enum

o también:

Enum eNacionalidad
nacEspañol=10
NacIngles
NacFrances
NacItaliano
NacOtro
End Enum

Con lo que nacIngles tendría un valor de 11, nacFrances de 12...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas