Cyklus For ... Next i ve VBA
Publikováno: 8.6.2017

Cyklus s konečným počtem opakování, formátování fontu pomocí Font.Size a Font.Color, příklady kódů k procvičení
- For ... Next i
- Cells()
- IsNumeric()
Cyklus For ... Next patří mezi nejpoužívanější cykly napříč všemi programovacími jazyky. Jeho úkolem je opakovat příkaz nebo skupinu příkazů uvnitř těla cyklu tak dlouho, dokud není dosaženo stanovené meze. Je to cyklus s konečným počtem opakování.
Kroky cyklu lze nastavit pomocí krokování Step, které zvyšuje či snižuje vnitřní čítač cyklu o stanovenou hodnotu.
Sub procedura()
Dim i As Byte
For i = dolní mez To horní mez Step délka kroku
příkazy
Next i
End Sub
Editor VBA pro psaní kódu vyvoláte stisknutím kláves ALT + F11.
Příklad #1
Následující procedura vypíše do sloupce A deset čísel s krokováním 1.
Sub Deset()
deklarace proměnné
Dim i As Byte
For i = 1 To 10
Cells(i, 1).Value = i
Next i
End Sub
Výsledek procedury

Příklad #2
Další procedura vypíše do sloupce A lichá čísla na intervalu 1 až 10. Toho lze docílit nastavením krokování na hodnotu 2.
Sub Pet()
deklarace proměnné
Dim i As Byte
For i = 1 To 10 Step 2
Cells(i, 1).Value = i
Next i
End Sub
Výsledekem procedury je

Příklad #3
Procedura vypíše do sloupce A deset čísel s rostoucí velikostí fontu. Velikost fontu je upravena pomocí Font.Size.
Sub velikostFontu()
deklarace proměnné
Dim i As Byte
For i = 1 To 10
Cells(i, 1).Value = i
Cells(i, 1).Font.Size = i * 5
Next i
End Sub
Výsledek

Příklad #4
Procedura vypíše do sloupce A názvy všech listů v sešitě. Počet listů v sešitě je zjištěn pomocí Sheets.Count, který je vložen do proměnné pocetlistu. Proměnná s počtem listů slouží jako horní mez v cyklu.
Sub nazvyListu()
deklarace proměnných
Dim i As Byte, pocetlistu As Byte
vložení počtu listů v sešitě do proměnné
pocetlistu = Sheets.Count
For i = 1 To pocetlistu
Cells(i, 1)= Sheets(i).Name
Next i
End Sub
Příklad #5
Poslední procedura otestuje pomocí funkce IsNumeric(), zda je v rozsahu buněk A1:A8 číslo či nikoliv. Vedle testované buňky pak vypíše hlášku o charakteru hodnoty v buňce.
Navíc je každé číslo obarvenou zelenou barvou. Pro vlastnost Color je zadána funkce RGB, která má 3 argumenty (červená barva, zelená barva, modrá barva). Argumenty mohou nabývat hodnot 0 až 255.
Sub jeCislo()
deklarace proměnné
Dim i As Byte
For i = 1 To 8
If IsNumeric(cells(i, 1)) Then
Cells(i, 1).Font.Color = RGB(0, 255, 0)
Cells(i, 1).Offset(, 1) = "Je číslo"
Else
Cells(i, 1).Offset(, 1) = "Není číslo"
End If
Next i
End Sub
Výsledek procedury je

