EJEMPLO USANDO WHILE ... END

Extensión de la declaración IF ... ELSE ... END If

Una de las formas del uso del If, cuando se deben usar anidados es:

IF Condicion1 THEN
.......
.......
ELSEIf condicion2 THEN
.......
.......
ELSEIF condicion3 THEN
.......
.......
END IF

En el siguiente ejemplo usaremos este If y la declaración While ... WEnd

Abra el archivo "MisMacros.xlsm" o haga clic aquí

Vaya al editor y haga doble clic en el Módulo2. Vaya al final del último procedimiento grabado.

El siguiente procedimiento Calc01, lo grabaremos en este módulo.

El procedimiento consiste en leer dos números y un código de operación: +, - , *, ó /.
 

Dependiendo del operador que se ha leído, se realizará la operación para luego imprimir el resultado.

A continuación se lee dos nuevos números. Si el primero número que se lee, no es un número, se termina, termina la ejecución del procedimiento.

Bien, empezamos digitando:
 

Como ya lo hemos visto, los datos numéricos se leen como cadena de caracteres. Estos deben ser convertidos en dato numérico usando la instrucción Val(...)
 

Según esto, puesto que debemos convertirlos después en valor numérico, usaremos el tipo Variant.

Este tipo de variable puede ser usado como de uno u otro tipo. Claro que podemos usar otra variable para convertirla, pero usemos las variables que sólo sean necesarias.

Sub Calc01 y presionamos [Intro].
' Declaramos las variables
' Primero leemos el primer número. Si éste es ""; decir, nada, termina el programa, de otra manera se lee el segundo número.
' A continuación se lee el código de operación. Dim a, b as Variant
Dim c as String
'
a = InputBox("Ingresa el primer número:")
While a <> ""
a = Val(a)
b = Val(InputBox("Ingresa el segundo número:"))
c = InputBox("Ahora ingresa el código de operación a realizar")
If c = "+" Then
MsgBox ("La suma es: " & a + b)
ElseIf c = "-" Then
MsgBox ("La diferencia es: " & a - b)
ElseIf c = "*" Then
MsgBox ("El producto es: " & a * b)
ElseIf c = "/" And b <> 0 Then
MsgBox ("La división es: " & a / b)
Else
MsgBox ("Código de operación inválido ...")
End If
a = InputBox("Ingresa el primer número. Para terminar, presione [Intro]")
Wend

La siguiente imagen contiene este procedimiento.


Guarde el archivo con el mismo nombre

En la siguiente sesión veremos otra aplicación del uso de IF y WHILE, para ello haga clic aquí