
`Switch` es una función en Visual Basic for Applications (VBA) que evalúa 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.
Aquí tienes un ejemplo básico de cómo usar la función `Switch` en VBA:
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`.
Aquí te dejo un ejemplo más concreto:
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.
Conoce nuestros servicios



