zpět na výpis    domů » excel » Cyklus For ... Next i ve VBA

Cyklus For ... Next i ve VBA

Publikováno: 8.6.2017

Cyklus For ... Next i ve VBA

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

Cyklus For ... Next i - výpis deseti čísel

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

Cyklus For ... Next i - výpis lichých čísel

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

Cyklus For ... Next i - výpis deseti čísel s rostoucím fontem

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

Cyklus For ... Next i - testování hodnoty v buňce

Líbil se vám článek? A chcete se vědět o každém dalším?

Sledujte:

Nahoru