Výchozí režim záznamu aplikace Excel je absolutní referenční. Když je odkaz na buňku ve vzorci absolutní odkaz , při vložení vzorce do nového umístění se automaticky neupraví.
Nejlepší způsob, jak pochopit, jak se tento koncept vztahuje na makra, je vyzkoušet si to. Zaznamenejte makro, které počítá řádky v listu. (Příklad viz obrázek.)
Váš prototalovaný pracovní list obsahující dvě tabulky.
Vzorovou datovou sadu použitou zde můžete najít online .
Chcete-li zaznamenat makro, postupujte takto:
Ujistěte se, že je vybrána buňka A1.
Na kartě Vývojář vyberte Zaznamenat makro.
Makro pojmenujte AddTotal.
Jako místo uložení zvolte Tento sešit.
Klepnutím na OK zahájíte nahrávání.
V tomto okamžiku Excel zaznamenává vaše akce.
Zatímco Excel zaznamenává, vyberte buňku A16 a do buňky zadejte Celkem.
Vyberte první prázdnou buňku ve sloupci D (D16) a zadejte = COUNTA(D2:D15).
Tento vzorec udává počet čísel větví ve spodní části sloupce D. Funkci COUNTA použijete, protože čísla větví jsou uložena jako text.
Kliknutím na Zastavit záznam na kartě Vývojář zastavíte záznam makra.
Váš sečtený pracovní list.
Formátovaný list by měl vypadat jako zde zobrazený.
Chcete-li vidět své makro v akci, odstraňte řádek Celkem, který jste právě přidali, a přehrajte si makro podle následujících kroků:
Na kartě Vývojář vyberte Makra.
Najděte a vyberte makro AddTotal, které jste právě zaznamenali.
Klepněte na tlačítko Spustit.
Pokud vše půjde dobře, makro přehraje vaše akce na T a dá vašemu stolu součet. Teď jde o to. Bez ohledu na to, jak moc se snažíte, nemůžete zajistit, aby makro AddTotal fungovalo na druhé tabulce. Proč? Protože jste to nahráli jako absolutní makro.
Chcete-li pochopit, co to znamená, prozkoumejte základní kód výběrem maker na kartě Vývojář. Zobrazí se dialogové okno Makro.
Dialogové okno Makro aplikace Excel.
Vyberte makro AddTotal a klikněte na tlačítko Upravit. Otevře se editor jazyka Visual Basic a zobrazí kód, který byl napsán při záznamu makra:
Sub AddTotal()
Rozsah("A16").Vyberte
ActiveCell.FormulaR1C1 = "Celkem"
Rozsah("D16").Vyberte
ActiveCell.FormulaR1C1 = "=COUNTA(R[-14]C:R[-1]C)"
End Sub
Věnujte zvláštní pozornost dvěma řádkům kódu, které vybírají rozsah A16 a rozsah D16. Protože bylo makro zaznamenáno v režimu absolutní reference, Excel interpretoval váš výběr rozsahu jako absolutní odkazy na buňky. Jinými slovy, bez ohledu na to, kde je kurzor v sešitu, při spuštění zaznamenaného makra vybere Excel buňku A16 a poté buňku D16. V další části se podíváte na to, jak stejné makro vypadá, když je zaznamenáno v relativním referenčním režimu.