Velmi silným nástrojem Microsoft Excelu je používání maker. Makra jsou programy v jazyce Visual Basic (VBA), umožňující automatizaci činností. Makra lze efektivně používat s ovládacími prvky, například tlačítky. Ukážeme si základní možnosti využití maker a jejich propojení s ovládacími prvky. Zabývat se naopak nebudeme přímým programováním v jazyce VBA, ale pouze vizuálním záznamem maker.
Vytvoření makra záznamem
Nejjednodušší cestou je vytvoření makra záznamem. V Excelu se přepněte na kartu Vývojář a můžeme jít na to.
Představme si jednoduchý příklad. Máme tabulku se třemi sloupci s nějakými hodnotami. A cílem je vytvořit tlačítko, které na kliknutí smaže obsah sloupců. Nebudete muset nic dělat ručně, vytvoříte si makro a to následně přiřadíte tlačítku jako událost na kliknutí.
Příklad ukazuje jednoduchou tabulku a označenou oblast chceme vymazat. Samozřejmě, v tomto případě by to bylo rychlejší ručně, ale co když bude mít tabulka tisíce řádků a kromě smazání budeme například chtít vyplnit oblast nějakými výchozími hodnotami. To už by bylo pracnější. A ke slovu přicházejí právě makra.
Makro začnete vytvářet pomocí tlačítka Záznam makra na kartě Vývojář. Otevře se dialogové okno, v němž zadáte název makra, případně klávesovou zkratku pro jeho spuštění a kde se má makro uplatnit, viz rozbalený seznam.
Po zadání a kliknutí na OK provedete činnosti, které chcete automatizovat. Tedy smazání oblasti D9:E18 dle obrázku. Jakmile chcete ukončit nahrávání makra (činnosti), klikněte na tlačítko Zastavit záznam na kartě Vývojář.
V tom okamžiku je makro zaznamenáno a následuje druhá fáze – vytvoření tlačítka a jemu přiřadit toto makro na kliknutí. Název makra nesmí obsahovat některé znaky a mezery, na to však Excel upozorní.
Ovládací formulářové prvky
Excel nabízí využití formulářových prvků, podobně jako je například znáte v HTML. Tlačítka, seznamy, přepínače, apod. To najdete v sekci Ovládací prvky na zmíněné kartě Vývojář.
Pomocí Vložit můžete vytvořit tlačítko, ale i další ovládací formulářové prvky. Pro náš účel zvolíme tlačítko a přímo jej nakreslit v Excelu jako obdélník. Poté si lze upravit text a jeho formátování. Stěžejní je však přiřazení makra tlačítku, tedy co se má stát po kliknutí. Z kontextové nabídky na tlačítku zvolíme Přiřadit makro a objeví se okno, v němž zapíšeme název makra nebo lze vytvořit nové. V našem příkladu zapíšeme název již vytvořeného makra smazatD9E18.
Takto spojíme makro s tlačítkem a po kliknutí na tlačítko se automaticky smaže obsah buněk v oblasti D9:E18.
Mohli bychom makro například doplnit o nejen smazání oblasti, ale rovněž předvyplnění výchozích hodnot na 200, což bude nový limit ve sloupci maximum. Makro bychom vytvořili úplně stejně, po akci smazání bychom oblast vyplnili konstantou 200. Kliknutí na tlačítko by pak způsobilo smazání oblasti a předvyplnění hodnot. Letmo se podívejte, jak vypadá zdrojový kód makra v jazyce VBA.
Programování maker je náročnější a vyžaduje znalost jazyk VBA. Ve většině případů si vystačíte s vizuálním záznamem makra.
Bezpečnost maker a jejich uložení
Musíme zmínit otázku bezpečnosti maker. Možná jste už slyšeli o makrovirech. Je to typ virů šířících se spouštěním maker v dokumentech a to nejen v Excelu, ale ve Wordu, apod. Někdo může napsat záměrně makro na kompletní smazání sešitu, přepsání hodnot a spoustu nežádoucích věcí a to bez kliknutí, zcela automaticky. To v tom lepším případě. Proto je obezřetnost na místě.
V Microsoft Office lze řídit možnosti spouštění maker. Můžete povolit makra na dotaz, jen podepsaná makra nebo je zcela zakázat. Nastavení se netýká jen Excelu, ale celého balíku Office.
Při ukládání souboru s makry je nutno uložit soubor jako typ “Sešit aplikace Excel s podporou maker”. Tyto soubory mají příponu XLSM. Na jiném zařízení se soubor s makry otevře dle nastavení Excelu.
Tento článek byl pouze základním úvodem do používání maker a ovládacích prvků v Excelu. Kromě tlačítek lze využít i další prvky formulářů a programovat složitá makra. Příkladem může být tvorba dynamických polí s makry. Automatizace pomocí maker může být velkým pomocníkem, avšak i potenciální hrozbou.