Está en la página 1de 4

Sentencias repetitivas

SENTENCIA FOR … NEXT

Permite ejecutar un determinado número de veces el grupo de sentencias incluidos en el cuerpo


del For … Next

Sintaxis

FOR VarIndice = ValInit TO ValFInal [ STEP Incr ]

[Sentencias]

NEXT

Para ello requiere de una variable que funciona a modo de índice (VarIndice) el cual empieza en
un primer valor (ValInit), por cada iteración que se realiza, se incrementa en una determinada
cantidad (Incr), hasta llegar al extremo (ValFinal), después del cual, continua con la siguiente
sentencia, debajo de Next. Si el incremento es la unidad, no se usa STEP Incr

Ejemplo

Se desea obtener la suma de los cuadrados de los 20 primeros números de 1 a 20.

Definiremos las siguientes variables:

I: Para la variable índice

Suma: Para contener la suma: Suma = Suma + I ^ 2

Sub Suma01()
Dim I As Variant
Dim Suma As Double

Suma = 0
xx=inputbox(“Ingrese un numero”,”Suma de Cuadrados”)
For I = 1 To xx
Suma = Suma + I ^ 2
Next
MsgBox("La suma de los cuadrados de ” & xx & “ números es: " & Suma)
End Sub
Ejemplo

Se desea hacer una macro para cambiar texto a mayúsculas o minúsculas de cualquier rango de
la hoja de trabajo

Sub mayusculas()
Set rango = Selection
For Each cell In rango
cell.Value = UCase(cell.Value)
Next
End Sub

SENTENCIA WHILE … WEND


Esta instrucción permite ejecutar un conjunto de sentencias incluidas en su ámbito, hasta que
alguna condición se cumpla.
Sintaxis
WHILE Condicion
[ Sentencias ]
WEnd
Al interior del bucle del While debe haber alguna forma de actualizar la "Condicion" a fin de permitir
que el While termine en algún momento.

Ejemplo
El siguiente ejemplo permite ingresar una serie de números hasta presionar <Enter>, en cuyo caso
imprime la suma de todos ello.

Sub Suma()
Dim Suma As Integer
Ix = Val(InputBox("Ingeresa un número; para terminar, presiona <Enter>", "INGRESE
NUMEROS", , 2000, 6000))
Suma = 0
Fila = 2
While Ix > 0
Suma = Suma + Ix
Fila = Fila + 1
Ix = Val(InputBox("Ingeresa un número; para terminar, presiona <Enter>", "INGRESE
NUMEROS", , 2000, 6000))
Wend
MsgBox ("La suma obtenida es = " & Suma)
End Sub
SENTENCIA DO … LOOP UNTIL

Esta instrucción permite ejecutar un grupo de sentencias contenidas en el


ámbito, hasta que determinada condición se cumpla.

La condición que determinar el término de las iteraciones debe ser resultado


de algún cálculo al interior del ámbito o debe haber sido leído en él.

Sintaxis:

DO

[ Sentencias ]

LOOP UNTIL Expresión_de_Comparación

Como decíamos, Expresión_de_Comparación debe contener una relación lógica capaz de ser
verdadera o falsa.

Observación:

Tome nota de la diferencia en el uso de la instrucción FOR, WHILE y DO. El uso de cada una de
ellas es diferente y se emplea en diferentes contextos.

La instrucción FOR se emplea para repetir un bucle un número determinado de veces.

La instrucción WHILE se emplea para repetir el bucle siempre que la condición se cumpla.

La sentencia DO es lo mismo que WHILE, excepto que While pregunta antes de ejecutar el bucle,
mientras que Do ejecuta el bucle y luego verifica la condición.
Ejemplo

Reescriba el procedimiento de la calculadora usando la instrucción DO … Loop Until

Como se puede apreciar, sólo cambiamos la instrucción While y la condición la hemos pasado al
final, luego de leer el código de operación para una siguiente operación.

Sub Calc()
Dim Op As Double
Op = Val(InputBox("Ingrese un número"))
Code = InputBox("Codigo de operación")
Do
Select Case Code
Case "+"
Op = Op + Val(InputBox("Digite el número"))
Case "-"
Op = Op - Val(InputBox("Digite el número"))
Case "*"
Op = Op * Val(InputBox("Digite el número"))
Case "/"
Op = Op / Val(InputBox("Digite el número"))
Case "^"
Op = Op ^ Val(InputBox("Digite el número"))
Case Else
MsgBox ("Código inválido. Reinicie todo...")
End
End Select
Code = InputBox("Código de operación")
Loop Until Code = "="
MsgBox ("Resultado = " & Op)
End Sub

También podría gustarte