Instrucción If… Then… Else

Define uno o más bloques de instrucciones que sólo se desea ejecutar cuando una condición dada es cierta.

Sintaxis:


If condition=true Then Bloque de instrucciones [ElseIf condition=true Then] Bloque de instrucciones [Else] Bloque de instrucciones EndIf

En vez de Else If puede escribir ElseIf, y en vez de End If puede escribir EndIf.

Parámetros:

La instrucción If...Then ejecuta bloques de programa cuando se dan ciertas condiciones. Cuando LibreOffice Basic encuentra una instrucción If, la condición se comprueba. Si es True, se ejecutan todas las instrucciones posteriores hasta que se encuentre una instrucción Else o ElseIf. Si la condición es False y a continuación hay una instrucción ElseIf, LibreOffice Basic comprueba la condición siguiente y ejecuta las instrucciones siguientes si la condición es True. Si es False el programa continúa con la siguiente instrucción ElseIf o Else. Las instrucciones que siguen a Else sólo se ejecutan si ninguna de las condiciones comprobadas anteriormente era cierta. Cuando se han evaluado todas las condiciones y se han ejecutado las instrucciones correspondientes, el programa continúa con la instrucción que sigue a EndIf.

Es posible anidar varias instrucciones If...Then.

Las instrucciones Else y ElseIf son opcionales.

Icono de advertencia

Se puede usar GoTo y GoSub para salir de un bloque If...Then, pero no para saltar dentro de una estructura If...Then.


El ejemplo siguiente permite introducir una fecha de caducidad de un producto y determina si ésta ya ha pasado.

Ejemplo:


Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
    sFecha = InputBox("Escriba la fecha de caducidad (MM.DD.AAAA)")
    sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)
    sToday = Date$
    sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)
    If sDate < sToday Then
        MsgBox "La fecha de caducidad ya ha pasado"
    ElseIf sDate > sToday Then
        MsgBox "La fecha de caducidad no ha pasado aún"
    Else
        MsgBox "La fecha de caducidad es hoy"
    End If
End Sub

¡Necesitamos su ayuda!