Eliška Kalfusová, konzultantka

V článku Jak si (ne)usnadnit práci ze dne 31. 1. 2013, uvedeném na webu www.dynamicfuture.cz se píše, že při zpracování dat v programu MS Excel je možné si usnadnit práci využitím maker. Při rozhodování, jestli pro řešení nějakého problému využít makro či běžné vzorce je však vhodné se pořádně zamyslet a položit si několik otázek:

První zásadní otázkou je, jestli výpočet (makra lze samozřejmě použít i k jiným úkonům než k výpočtům, např. formátování buněk či tvorba grafů atd., ale o tam zase někdy jindy) nelze provést přímo pomocí nějaké funkce programu MS Excel. Jako příklad lze uvést kontingenční tabulky – není těžké napsat krátký skript ve VBA, který takovou tabulku vytvoří, ale použití kontingenční tabulky je jistě mnohem efektivnější.

Další otázkou je, jak často bude výpočet opakován. Použití maker je vhodné v situacích, kdy mnohokrát opakujete stejné činnosti, např. zpracovávání pravidelných týdenních, měsíčních či ročních reportů. V tomto případě je šikovné si vytvořit makro, které provede úkony, vedoucí k finální podobě takového reportu, včetně formátování výsledných tabulek. Takové makro lze v průběhu času doladit tak, aby zahrnovalo všechny možné nastalé situace. Pokud však provádíte pouze jednorázové výpočty, ke kterým se sice v budoucnu někdy možná vrátíte, ale možná také ne, je lepší využít přímo funkce v programu MS Excel.

Neméně důležité je také to, kdo všechno dotyčný soubor s makry bude používat. Pokud pouze autor sám, pak záleží samozřejmě jen na něm, jak výpočty provede. Pokud bude ale tento soubor sdílet i s dalšími uživateli, kteří s makry neumí, pak by měl autor buď zvlášť dbát na správnost a univerzálnost kódu, nebo použít pouze vzorce. To proto, že neznalý uživatel může provést nějaké změny ve zdrojových datech (např. vložení nového sloupce do pole, se kterým makro pracuje), a v případě, že tato situace není ošetřena, makro už nebude pracovat správně. Dalším důvodem je pak skutečnost, že výsledky vypočtené pomocí makra se zobrazují pouze jako hodnoty. Uživatel, který VBA kódu nerozumí, potom nebude moci zjistit, jak tyto výsledky vznikly. Jistě jsou i situace, kdy není potřeba, aby koncový uživatel takého souboru rozuměl, jak výsledky vznikly. V tom případě je na autorovi, aby makro vytvořil tak, aby ho uživatel nemohl nežádoucím způsobem ovlivnit.