Contenido
La función Switch en Visual Basic for Applications (VBA) se utiliza para una lista de expresiones y devuelve un valor asociado con la primera expresión que se evalúa como True. Funciona de manera similar a una serie de If… ElseIf… Else pero de una forma más compacta y a menudo más legible, especialmente cuando se tiene una lista sustancial de condiciones.
Ejemplo
Dim result As String
result = Switch(
condition1, "Resultado 1",
condition2, "Resultado 2",
condition3, "Resultado 3",
' ...
conditionN, "Resultado N"
)
MsgBox result
En el ejemplo anterior, condition1, condition2, condition3, …, conditionN son expresiones booleanas. La función Switch examinará cada condición en el orden en que se presentan y devolverá el valor asociado con la primera condición que se evalúe como True. Si ninguna de las condiciones es verdadera y no se ha proporcionado un valor True predeterminado, Switch devolverá Null.
Ejemplo 2
Sub ExampleSwitch()
Dim score As Integer
Dim grade As String
' Imagina que tenemos una puntuación:
score = 85
' Usamos Switch para asignar una calificación basada en la puntuación:
grade = Switch(
score >= 90, "A",
score >= 80, "B",
score >= 70, "C",
score >= 60, "D",
score < 60, "F"
)
' Mostramos la calificación:
MsgBox "La calificación es: " & grade
End Sub
En este ejemplo, si score es 85, la función Switch comprobará las condiciones una por una. La primera condición que resulta cierta es score >= 80, por lo que la función devolverá «B» y eso es lo que se asignará a la variable grade.
Recuerda que, si bien la función Switch puede hacer que tu código sea más limpio y más fácil de leer, no es adecuada para todas las situaciones y estructuras lógicas. Para algunos casos, especialmente si tienes acciones específicas que ejecutar en lugar de valores para devolver, usar If… ElseIf… Else o Select Case puede ser más apropiado.