Estructura con anidamiento (If _ Then _ Else If)
La instrucción If Then else en VBA es necesaria para tomar decisiones dentro del código en VBA.
Esta estructura tiene un comportamiento similar a Función SI en Excel, y también es conocida como bucle IF
Sintaxis de IF THEN ELSE
La sintaxis completa es como sigue:
If condición Then
[Instrucciones a ejecutar]
[ ElseIf condición2 Then
[Instrucciones a ejecutar]]
[ Else
[Instrucciones a ejecutar]]
End If
La parte correspondiente al ELSEIF como al ELSE son opcionales, por lo que la estructura podría quedar de las siguientes formas:
IF ELSEIF
En esta alternativa pueden quedar situaciones en las que no cumplan ni el primer ni el segundo conjunto de instrucciones.
If condición Then
[Instrucciones a ejecutar]
[ ElseIf condición2 Then
[Instrucciones a ejecutar]]
End If
IF THEN ELSE END IF
En esta segunda alternativa siempre si la "condición" no se cumple, se ejecutarán las instrucciones correspondientes al ELSE, es decir siempre se ejecutará una de las dos instrucciones.
If condición Then
[Instrucciones a ejecutar]
[ Else
[Instrucciones a ejecutar]]
End If
IF THEN
Tomando en cuenta que tanto el ELSEIF como el IF son opcionales, el código podría quedar de la siguiente forma, en la que solo si se cumple la "Condición" se ejecutarán las instrucciones que se encuentran dentro del IF.
If condición Then
[Instrucciones a ejecutar]
End If
IF THEN ELSE
Si se escribe todo en una sola línea, se debe prescindir del end if.
If condition Then [Instrucciones a ejecutar] [ Else [ Instrucciones a ejecutar] ]
Parte de la sintaxis de IF THEN ELSE
¿Qué es IF?, es el inicio de del bucle IF THEN ELSE.
En esta estructura "condición" representa el caso que debe cumplirse para que se ejecute la primera parte de la condición, si se quieren usar varias condiciones será necesario usar los operadores lógicos en VBA.
Elseif es una parte opcional que se ejecutaría solo si la parte anterior no se cumple y se requiere añadir alguna otra condición
Mientras que "else" hace que todos los casos en los que no se haya cumplido ninguno de los casos previos se pueda ejecutar las instrucciones siguientes, así tendríamos por ejemplo:
Sub EjemploIfThenElse()
a = 12
If a = 8 Then
MsgBox "1"
ElseIf a = 12
Then MsgBox "2"
Else
MsgBox "3"
End If
End Sub
Si "a" vale 8 entonces se ejecutaría el primer mensaje, si "a" en cambio valiese 12 se ejecutaría el segundo mensaje, en todos los demás valores posibles de "a" se ejecutaría el tercer mensaje.
Comentarios
Publicar un comentario