Está en la página 1de 4

Sentencias repetitivas

SENTENCIA FOR NEXT

Permite ejecutar un determinado nmero 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 iteracin que se realiza, se incrementa en una determinada
cantidad (Incr), hasta llegar al extremo (ValFinal), despus 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 nmeros 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 & nmeros es: " & Suma)
End Sub
Ejemplo

Se desea hacer una macro para cambiar texto a maysculas o minsculas 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 instruccin permite ejecutar un conjunto de sentencias incluidas en su mbito, hasta que
alguna condicin 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 algn momento.

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

Sub Suma()
Dim Suma As Integer
Ix = Val(InputBox("Ingeresa un nmero; 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 nmero; para terminar, presiona <Enter>", "INGRESE
NUMEROS", , 2000, 6000))
Wend
MsgBox ("La suma obtenida es = " & Suma)
End Sub
SENTENCIA DO LOOP UNTIL

Esta instruccin permite ejecutar un grupo de sentencias contenidas en el


mbito, hasta que determinada condicin se cumpla.

La condicin que determinar el trmino de las iteraciones debe ser resultado


de algn clculo al interior del mbito o debe haber sido ledo en l.

Sintaxis:

DO

[ Sentencias ]

LOOP UNTIL Expresin_de_Comparacin

Como decamos, Expresin_de_Comparacin debe contener una relacin lgica capaz de ser
verdadera o falsa.

Observacin:

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

La instruccin FOR se emplea para repetir un bucle un nmero determinado de veces.

La instruccin WHILE se emplea para repetir el bucle siempre que la condicin 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 condicin.
Ejemplo

Reescriba el procedimiento de la calculadora usando la instruccin DO Loop Until

Como se puede apreciar, slo cambiamos la instruccin While y la condicin la hemos pasado al
final, luego de leer el cdigo de operacin para una siguiente operacin.

Sub Calc()
Dim Op As Double
Op = Val(InputBox("Ingrese un nmero"))
Code = InputBox("Codigo de operacin")
Do
Select Case Code
Case "+"
Op = Op + Val(InputBox("Digite el nmero"))
Case "-"
Op = Op - Val(InputBox("Digite el nmero"))
Case "*"
Op = Op * Val(InputBox("Digite el nmero"))
Case "/"
Op = Op / Val(InputBox("Digite el nmero"))
Case "^"
Op = Op ^ Val(InputBox("Digite el nmero"))
Case Else
MsgBox ("Cdigo invlido. Reinicie todo...")
End
End Select
Code = InputBox("Cdigo de operacin")
Loop Until Code = "="
MsgBox ("Resultado = " & Op)
End Sub

También podría gustarte