VBA: instrucción If anidada

Una declaración If o ElseIf dentro de otra declaración If o ElseIf. Las sentencias If internas se ejecutan en función de las sentencias If más externas. Esto permite que VBScript maneje condiciones complejas con facilidad.

Sintaxis

A continuación se muestra la sintaxis de un anidado If declaración en VBScript.

If(boolean_expression) Then
   Statement 1
   .....
   .....
   Statement n
   
   If(boolean_expression) Then
      Statement 1
      .....
      .....
      Statement n
   ElseIf (boolean_expression) Then
      Statement 1
      .....
      ....
      Statement n
   Else
      Statement 1
      .....
      ....
      Statement n
   End If
Else
   Statement 1
	.....
	....
   Statement n
End If

Ejemplo

Para fines de demostración, busquemos el tipo de número positivo con la ayuda de una función.

Private Sub nested_if_demo_Click()
   Dim a As Integer
   a = 23
  
   If a > 0 Then
      MsgBox "The Number is a POSITIVE Number"
      
      If a = 1 Then
         MsgBox "The Number is Neither Prime NOR Composite"
      ElseIf a = 2 Then
         MsgBox "The Number is the Only Even Prime Number"
      ElseIf a = 3 Then
         MsgBox "The Number is the Least Odd Prime Number"
      Else
         MsgBox "The Number is NOT 0,1,2 or 3"
      End If
   ElseIf a < 0 Then
      MsgBox "The Number is a NEGATIVE Number"
   Else
      MsgBox "The Number is ZERO"
   End If
End Sub

Cuando se ejecuta el código anterior, produce el siguiente resultado.

The Number is a POSITIVE Number
The Number is NOT 0,1,2 or 3