Utilizar instrucciones For...Next

Microsoft VBA

Utilizar instrucciones For...Next

   

Las instrucciones For...Next se pueden utilizar para repetir un bloque de instrucciones un número determinado de veces. Los bucles For usan una variable contador cuyo valor se aumenta o disminuye cada vez que se ejecuta el bucle.

El siguiente procedimiento hace que el equipo emita un sonido 50 veces. La instrucción For determina la variable contador x y sus valores inicial y final. La instrucción Next incrementa el valor de la variable contador en 1.

Sub Bips()
    For x = 1 To 50
        Beep
    Next x
End Sub

Mediante la palabra clave Step, se puede aumentar o disminuir la variable contador en el valor que se desee. En el siguiente ejemplo, la variable contador j se incrementa en 2 cada vez que se repite la ejecución del bucle. Cuando el bucle deja de ejecutarse, total representa la suma de 2, 4, 6, 8 y 10.

Sub DosTotal()
    For j = 2 To 10 Step 2
        total = total + j
    Next j
    MsgBox "El total es " & total
End Sub

Para disminuir la variable contador utilice un valor negativo en Step. Para disminuir la variable contador es preciso especificar un valor final que sea menor que el valor inicial. En el siguiente ejemplo, la variable contador miNum se disminuye en 2 cada vez que se repite el bucle. Cuando termina la ejecución del bucle, total representa la suma de 16, 14, 12, 10, 8, 6, 4 y 2.

Sub NuevoTotal()
    For miNum = 16 To 2 Step -2
        total = total + miNum
    Next miNum
    MsgBox "El total es " & total
End Sub

Nota    No es necesario incluir el nombre de la variable contador después de la instrucción Next. En los ejemplos anteriores, el nombre de la variable contador se ha incluido para facilitar la lectura del código.

Se puede abandonar una instrucción For...Next antes de que el contador alcance su valor final, para ello se utiliza la instrucción Exit For. Por ejemplo, si se produce un error se puede usar la instrucción Exit For en el bloque de instrucciones True de una instrucción If...Then...Else o Select Case que detecte específicamente ese error. Si el error no se produce, la instrucción If…Then…Else es False y el bucle continuará ejecutándose normalmente.