Měli jsme tu šikovného kluka, co na všechno udělal makro…
Na tenhle scénář narážím ve firmách odhadem tak jednou za měsíc.
Fáze 1 – Ve firmě se pracuje s mnoha Excely a je s tím moc práce
Fáze 2 – Najde se šikovný kluk, kterého baví makra. Postaví jeden nebo několik superhypervytuněných Excelů, které obsahují několik tlačítek, ActiveX prvků, formulářů a za tím kilometry VBA kódu. Je tam spousta propojení, vazeb, kontrol. A vcelku dobře to funguje. Občas to trochu zazlobí, ale tvůrce se trochu prohrabe v kódu, něco málo upraví a zase je všechno v pořádku.
Fáze 3 – ŠIkovný kluk odejde.
Fáze 4 – Pár týdnů to ještě všechno nějak funguje. Ale pak se někde přejmenuje soubor nebo sloupec a nefunguje nic. S VBA kódem nikdo neumí pracovat. V tom okamžiku jsme často osloveni my, jestli bychom ten soubor neuměli nějak zprovoznit a udržovat. A my řekneme, že neuměli, resp. uměli, ale bude to stát strašně moc času a tím pádem to nebude nejlevnější. A že by asi bylo levnější udělat to celé znovu – protože jestli je něco opravdu časově náročné, tak je to prohrabování cizího komplikovaného (a z 99% nezdokumentovaného nebo špatně zdokumentovaného) kódu.
Chcete také jednou zjistit, že vaše Excely nefungují a nikdo jim nerozumí? Pokud nechcete, doporučil bych:
- Nevytvářet v Excelu monstrózní řešení – udělejte spíš několik relativně jednoduchých, dílčích nástrojů. Pro komplexní “velké” aplikace existují mnohem lepší technologie než Excel. Já vím, ono to láká, člověk si začne hrát s VBA, pak přidává další a další možnosti a nástroje… ale chce to nepodlehnout.
- Nenechat jednoho člověka, aby všemu rozuměl sám. Rizika jsou myslím zřejmá.
- Používat VBA jen pokud je to nevyhnutelné – lepší jsou funkce a Power Query (já vím, ne vždy se dá VBA nahradit, ale velmi často ano…). Většina věcí, které se ve VBA vytváří hodně složitě, zdlouhavě a komplikovaně, se dá v Power Query naklikat za chvilku. A to, co jeden uživatel vytvoří, může jiný uživatel snadno a rychle pochopit a doladit – protože Power Query se naučí neskonale rychleji než VBA.