dnes je 15.7.2025

Input:

Cykly v makrech

1.6.2007, , Zdroj: Verlag Dashöfer

Cykly v makrech

Provádění příkazů v cyklu (smyčce) představuje proces opakování celého bloku instrukcí v kódu VBA. Počet opakování vždy známe předem, nebo ho určíme během běhu makra na základě hodnot proměnných.

Cyklus For - To - Next

Pro procvičení příkladů této části si postupně otevřeme soubor ma09_a.xls.

Zápis textu do řady buněk:

Požadujeme vytvořit makro, které do řady 20 buněk pod sebou zapíše hodnotu, na kterou se dotáže dialog InputBox.

Otevřeme nový soubor a v editoru VBA do něj vložíme nový Modul, do kterého zapíšeme následující kód makra:

Zeleně jsou v komentáři podrobně popsány jednotlivé příkazy.

Sub zadejhodnoty()

Dim x

' Dotaz na hodnotu zadávanou do buněk – uloženou do proměnné y

y = InputBox("Nyní se do dvaceti buněk pod označenou zapíše následující text:", "For - Next")

' pro proměnnou x od 1 do 20 (cyklus) udělej:

For x = 1 To 20

' do buňky o řádek níž zapiš hodnotu y

ActiveCell.Offset(x, 0). Range("A1"). Value = y

' běž na následující hodnotu x (další v pořadí cyklu)

Next x

End Sub

Nyní makro „zadejhodnoty“ spustíme:

  1. Spustíme makro (stojíme např. v buňce B2) – zobrazí se první krok:

  2. Po potvrzení makro zapíše do buněk B3:B22 zadaný text:

Zápis textu do řady buněk po krocích

Požadujeme vytvořit makro, které do řady 20 buněk pod sebou zapíše hodnotu, na kterou se dotáže dialog InputBox. Tuto hodnotu zapíše pouze do každé n-té buňky.

Otevřeme si soubor mk09_a.xls a v editoru VBA do něj vložíme a zapíšeme následující kód makra:

Zeleně jsou v komentáři podrobně popsány jednotlivé příkazy.

Sub zadejhodnoty2()

Dim x

' Dtto

y = InputBox("Nyní se do dvaceti buněk pod označenou zapíše následující text:", "For - Next")

' Dotaz na krok pro vkládání pouze do každé n-té buňky – uloženou do proměnné z

z = InputBox("Zadej krok pro vkládání do každé n-té buňky:", "For - Next")

' Dtto

For x = 1 To 20 Step z

' Dtto

ActiveCell.Offset(x, 0). Range("A1"). Value = y

' Dtto

Next x

End Sub

Nyní makro „zadejhodnoty2“ spustíme:

  1. Spustíme makro (stojíme např. v buňce D2) – zobrazí se první krok:

  2. Nyní zadáme krok:

  3. Po potvrzení nám makro zapíše do buněk B3:B22 (do každé třetí) zadaný text:

Cyklus přičtení čísla do řady buněk

Požadujeme vytvořit makro, které k řadě 20 buněk pod sebou přičte hodnotu, na kterou se dotáže dialog InputBox.

Otevřeme soubor mk09_a.xls a v editoru VBA do něj

Nahrávám...
Nahrávám...