Pętla For…Next

Pętla For zwana również pętlą For…Next pozwala na wielokrotne wykonywanie bloku kodu zawartego w ciele pętli. Pętla przyjmuje również opcjonalny skok (Step) zwiększający wartość licznika pętli o liczbę podaną po parametrze Step. Gdy nie podano parametru Step, wartość licznika jest zwiększana o 1. Poniższy Listing przedstawia procedurę, która wypisuje w pierwszych 10 kolejnych wierszach kolejne liczby parzyste (wartość kroku Step 2 zwiększa licznik pętli o 2 przy każdym przebiegu pętli)

Sub PętlaFor1()
    Dim Licznik As Long
    
    For Licznik = 2 To 20 Step 2
        Cells(Licznik / 2, 1) = Licznik
    Next Licznik
End Sub

Poniższy Listing z kolei przedstawia procedurę, która w kolejnych trzech kolumnach wypełnia komórki odpowiednimi odcieniami kolorów: czerwonego, niebieskiego i zielonego nadając im odpowiednie wartości (od najmniejszej do największej). Każdy kolejny przebieg pętli zwiększa wartość licznika o 10 a kolor zawierający większą składową odpowiedniego koloru staje się jaśniejszy.

Sub PętlaFor2()
    Dim Licznik As Long
    Dim Wiersz As Long
    
    For Licznik = 0 To 255 Step 10
        Wiersz = Wiersz + 1
        Cells(Wiersz, 1) = Licznik 'wypisz wartość licznika 
        Cells(Wiersz, 2).Interior.Color = RGB(Licznik, 0, 0)
        Cells(Wiersz, 3).Interior.Color = RGB(0, Licznik, 0)
        Cells(Wiersz, 4).Interior.Color = RGB(0, 0, Licznik)
    Next Licznik
End Sub

Poniższy Listing przedstawia przykład zagnieżdżania pętli For…Next. Najpierw zostaje wykonana zewnętrzna pętla for (zwiększająca numer wiersza o 1 przy każdym przebiegu) a następnie wewnątrz tej pętli zostanie wykonana wewnętrzna pętla For (zwiększająca numer kolumny przy jej każdym przebiegu). W tym przykładzie tworzymy prostą tabliczkę mnożenia (do odpowiedniej komórki zostaje przypisany iloczyn zmiennych Wiersz i Kolumna). Poniższy Rysunek przedstawia efekt wykonania tej procedury.

Sub ZagnieżdżonaPętlaFor()
    Dim Wiersz As Long, Kolumna As Long
    
    For Wiersz = 1 To 10
        For Kolumna = 1 To 10
            Cells(Wiersz, Kolumna) = Wiersz * Kolumna
        Next Kolumna
    Next Wiersz
End Sub

Wróć do spisu treści