Esta definición fue extraída de la ayuda de Microsoft Excel 2003, idónea para ver el uso de la instrucción :
If...Then...Else (Instrucción)
Ejecuta condicionalmente un grupo de instrucciones, dependiendo del valor de
una expresión.
Sintaxis
If condición Then
[instrucciones]-[Else instrucciones_else]
Puede utilizar la siguiente sintaxis en formato de bloque:
If condición
Then
[instrucciones]
[instrucciones]
[ElseIf condición-n
Then
[instrucciones_elseif]
[instrucciones_elseif]
...
[Else
[instrucciones_else]]
[instrucciones_else]]
End If
La sintaxis de la instrucción If...Then...Else consta de tres
partes:
Parte | Descripción |
---|---|
condición | Requerido. Uno o más de los siguientes dos tipos de expresiones: |
Una expresión numérica o expresión de cadena que puede ser evaluada como True o False. Si condición es Null, condición se considera False. | |
Una expresión del formulario TypeOf nombre_objeto Is tipo_objeto. El nombre_objeto es cualquier referencia al objeto y tipo_objeto es cualquier tipo de objeto válido. La expresión es True si nombre_objeto es del tipo de objeto especificado por tipo_objeto; en caso contrario es False. | |
instrucciones | Opcional en formato de bloque; se requiere en formato de línea sencilla que no tenga una cláusula Else. Una o más instrucciones separadas por dos puntos ejecutados si la condición es True. |
condición-n | Opcional. Igual que condición. |
instrucciones_elseif | Opcional. Una o más instrucciones ejecutadas si la condición-n asociada es True. |
instrucciones_else | Opcional. Una o más instrucciones ejecutadas si ninguna de las expresiones anteriores condición o condición-n es True. |
Comentarios
Puede utilizar la forma de una sola línea (Sintaxis 1) para pruebas
cortas y sencillas. Sin embargo, el formato de bloque (Sintaxis 2) proporciona
más estructura y flexibilidad que la forma de línea simple y, generalmente, es
más fácil de leer, de mantener y de depurar.
Nota Con la sintaxis es posible ejecutar múltiples
instrucciones como resultado de una decisión If...Then, pero todas
deben estar en la misma línea y separadas por dos puntos, como en la instrucción
siguiente:
If A > 10 Then A = A + 1 : B = B + A : C = C + B
Una instrucción con formato de bloque If debe ser la primera
de la línea. Las partes Else, ElseIf y End If, de la
instrucción, solamente pueden ir precedidas de un número de línea o una etiqueta de línea. El bloque If
debe terminar con una instrucción End If.
Para determinar si una instrucción If es un bloque, examine lo
que sigue a la palabra clave
Then. Si lo que aparece detrás de Then en la misma línea no es un comentario , la instrucción se
considera como una instrucción If de una sola línea.
Las cláusulas Else y ElseIf son opcionales. Puede tener
en un bloque ElseIf, tantas cláusulas If como desee, pero ninguna
puede aparecer después de una cláusula Else. Las instrucciones de bloque
If se pueden anidar; es decir, unas pueden contener a otras.
Cuando se ejecuta un bloque If (Sintaxis 2), se prueba
condición. Si condición es True, se ejecutan las
instrucciones que están a continuación de Then. Si condición es
False, se evalúan una a una las condiciones ElseIf (si existen).
Cuando se encuentra una condición True se ejecutan las instrucciones que
siguen inmediatamente a la instrucción Then asociada. Si ninguna de las
condiciones ElseIf es True (o si no hay cláusulas ElseIf),
se ejecutan las instrucciones que siguen a Else. Después de la ejecución
de las instrucciones que siguen a Then o Else, la ejecución
continúa con la instrucción que sigue a End If.
Sugerencia Select Case puede ser más útil cuando se
evalúa una única expresión que tiene varias acciones posibles. Sin embargo, la
cláusula TypeOf nombre_objeto Is tipo_objeto no se
puede utilizar en una instrucción Select Case.
Nota No se puede usar TypeOf con tipos de datos
predefinidos como Long, Integer y así sucesivamente, excepto en el tipo de datos
Object.
Ejemplo de la instrucción If...Then...Else
Este ejemplo muestra los dos posibles usos de If...Then...Else
como bloque y en una única línea. También muestra el uso de If
TypeOf...Then...Else.
Dim Número, Dígitos, MiCadena
Número = 53 ' Inicializa variable.
If Número < 10 Then
Dígitos = 1
ElseIf Número < 100 Then
' La condición es True, por lo que se ejecuta la siguiente
instrucción.
Dígitos = 2
Else
Dígitos = 3
End If
' Asigna un valor con la sintaxis de una línea.
If Dígitos = 1 Then MiCadena = "Una" Else MiCadena = "Más de una"
Puede utilizar If TypeOf para determinar si el control que se
pasa a un procedimiento es
un cuadro de texto.
un cuadro de texto.
Sub ControlProcessor(MiControl As Control)
If TypeOf MiControl Is CommandButton Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
ElseIf TypeOf MiControl Is CheckBox Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
ElseIf TypeOf MiControl Is TextBox Then
Debug.Print "Ha pasado un " & TypeName(MiControl)
End If
End Sub
No hay comentarios:
Publicar un comentario