Relativně a absolutně odkazované makro
Standardní záznam každého makra je vždy absolutní.
Znamená to, že si Excel při záznamu pamatuje absolutní adresy buněk, řádků a
sloupců – tedy konkrétní hodnoty (např. A10, B, $12, $C$2:$E$10 apod.)
Kteroukoli buňku tedy označíme (kamkoliv umístíme kurzor), její adresa je
zachycena v záznamu.
Jestliže ovšem potřebujeme posunout kurzor v makru o
určitý počet buněk, nelze ponechat stávající absolutní způsob zápisu odkazů.
Musíme se přepnout do režimu relativního odkazování. V případě přímého zápisu
potom zapisujeme do kódu tato makra rovnou – s příslušnými změnami ve stylu
zápisu.
Ukázka a vytvoření jednoduchých relativních
maker
Pro procvičování příkladů této části si otevřete soubor mk06_a.xls, pro vytváření uvedených maker si otevřete vždy nový
soubor.
Uvedené ukázky jsou zde uváděny pro inspiraci a jako
základ pro doplnění do složitějších maker, kde se bez relativních maker
neobejdeme.
Přesun buňky o dva řádky dolů a sloupec
doprava
Otevřeme si soubor mk06_a.xls, postavíme se kurzorem do buňky C2 a
spustíme makro relativni1. Kurzor se nám přesune do buňky D4.
Postup tvorby makra v záznamu:
-
Pomocí příkazu Nástroje/Makro/Záznam nového makra spustíme záznam
(makro nazveme „relativni1“).
-
Pomocí ikony na panelu „Zastavit záznam“ se přepneme se do
relativních odkazů.
-
Nyní provedeme přesun buněk: kurzorovými šipkami přesuneme
označenou buňku o jedno d oprava a o dva dolů – tedy do buňky F3.
-
Vypneme relativní odkazy, ukončíme záznam a makro vyzkoušíme.
Když se podíváme do editoru VBA, vidíme jasně formu zápisu pro
relativní posuny buněk:
ActiveCell.Offset(2, 1)
Výsledný zápis je potom:
Sub relativni1()
ActiveCell.Offset(2, 1). Range("A1"). Select
End Sub
Zápis textu ABCD do buňky o řádek níž a tři sloupce doprava
Otevřeme si soubor mk06_a.xls, postavíme se kurzorem do buňky C2 a
spustíme makro relativni2. Do buňky F3 se zapíše text ABCD a kurzor se vrátí
zpět do buňky C2.
Postup tvorby makra v záznamu:
-
Pomocí příkazu Nástroje/Makro/Záznam nového makra spustíme záznam
(makro nazveme „relativni2“).
-
Pomocí ikony na panelu „Zastavit záznam“ se přepneme do
relativních odkazů a zaznamenáme:
-
kurzorovými šipkami přesuneme označenou buňku o tři d oprava a
o jeden dolů – tedy do buňky D4;
-
z klávesnice zapíšeme text ABCD a potvrdíme klávesou
ENTER;
-
opět se přesuneme kurzorovými šipkami o dva nahoru a o tři
doleva.
-
Vypneme relativní odkazy, ukončíme záznam a makro vyzkoušíme.
Když se podíváme do editoru VBA, vidíme opět jasnou formu zápisu pro
relativní posuny buněk.
Výsledný zápis je potom: