Zjednodušte si práci s daty v Excelu díky VBA. Naučit se jej může opravdu každý

Zatímco automatizace je v řadě oblastí práce aktuálně populárním trendem, v informatice nejde o žhavou novinku na trhu. S narůstajícími objemy dat, s nimiž se firmy během let potýkají, dlouhodobě vznikají nejrůznější nástroje a programovací jazyky, které výrazně pomáhají snižovat podíl manuální práce na zpracování a dalším využití dat. Jedním z nich je Visual Basic for Application (VBA), který ve svých kurzech školí společnost Computer Help.  

Jiří Slabý, lektor kurzů VBA v Computer Help

Když jsem byla pozvána zúčastnit se coby redaktor lednového termínu jednoho z průběžných navazujících kurzů VBA (VBA-3) v Computer Help váhala jsem, zda jako ne-analytik tématu alespoň trochu porozumím. VBA je nicméně programovacím jazykem běžně rozšířeného nástroje MS Excel a dalších programů kancelářského balíčku Office. Jelikož se v Excelu považuji za celkem pokročilého uživatele, který zvládá i mnohými neoblíbené kontingenční tabulky a při osvěžení paměti také makra, nabyla jsem určitého ujištění, že mi téma nebude zcela cizí ani v roli pozorovatele.

Do výukové místnosti společnosti, která sídlí v centru Prahy u Náměstí Míru, jsem se na úvodní lekci třídenního kurzu dostavila s předstihem a k mému překvapení jsem mezi sedmi účastníky nebyla jediná žena. Po chvíli vstoupil do místnosti i lektor – Jiří Slabý, MCP a hodina mohla začít.

„Tento kurz (VBA-3) je hodně o spolupráci,“ uvedl hned na úvod a následně velmi důsledně prošel vlastní strukturu výuky, neboť, jak doplnil: „Každý z účastníků přichází s různými zkušenostmi.“

Program se měl v případě našeho pokročilého školení VBA-3 věnovat především oblasti spolupráce s různými databázemi, textovými soubory nebo například s emailovým klientem MS Outlook. Na úvod však lektor předložil konkrétní opakovací příklad, na kterém si účastníci měli sladit své znalosti.

V mé roli mě během výuky zajímal především lektorský přístup. Jiří Slabý předložil zadání vycházející z praxe a dal účastníkům prostor pustit se do samostatné práce na výukových počítačích. Postupně procházel jednotlivé řádky kódu, které ze svého počítače promítal na zeď. Zaujalo mě, že u každého kroku nejenže sdělil postup, ale především srozumitelně průběžně komentoval, co daný řádek příkazu ovlivní a interaktivně zapojoval účastníky, aby návazně nabídli další kroky. Pro vizuálně zaměřené typy navíc vždy rozkreslil definice významů a vzájemný vazeb pro lepší pochopení cílů a jak jich dosáhnout.

V obdobném duchu probíhal i zbytek lekce, kdy lektor zároveň průběžně věnoval dostatek času, aby jednotlivé účastníky individuálně obešel a poradil v případě, že se jim programovacím příkazem nedařilo dosáhnout požadovaného výsledku.

V hlavě se mi honilo několik otázek, o jejichž zodpovězení jsem Jiřího Slabého závěrem požádala:

Jaký je vlastně v současnosti potenciál uplatnění jazyka VBA v praxi?

Jistě existují rychlejší a přesnější nástroje pro analýzu dat, nicméně zaměstnanci ve firmách, se kterými přicházím do styku, mají k dispozici a denně využívají právě MS Excel. Většinou se jedná o jeden z jejich hlavních nástrojů pro analytickou práci s daty, tvorbu grafů a kontingenčních tabulek, který je zároveň jednoduchý a intuitivní na ovládání.

Při každodenních činnostech zpracování dat se může stát, že se některé činnosti opakují a je potřeba je nějak automatizovat. Jistě, mohli bychom zaplatit programátora, který by nám takovou aplikaci na automatizaci naprogramoval v nějakém populárním, objektově orientované programovacím jazyku. V praxi jsem toho byl nesčetněkrát svědkem. Problém ale nastal ve chvíli, že když bylo potřeba něco dodatečně upravit, běžný uživatel, ne-programátor, kódu nerozuměl. Navíc by musel doinstalovávat různé softwary, aby se na kód vůbec dokázal podívat. Bylo to zkrátka zdlouhavé a drahé.

Jaké výhody tedy plynou z využití VBA?

Je velmi jednoduchý. Tvrdím, že je to programovací jazyk pro ne-programátory. VBA se dokáže naučit běžný uživatel Excelu, Wordu, Outlooku, PowerPointu, manažer, finančník, pojistný matematik, uživatelé z controllingu i z HR. Pracují totiž při tvorbě aplikace v důvěrně známém a na ovládání jednoduchém prostředí Microsoft Office. Není potřeba doinstalovávat další speciální běhové programátorské aplikace. Jazyk VBA je součástí MS Office produktů.

Pro automatizování jednoduchých činností v Excelu je jazyk VBA naprosto ideální, protože si úpravu kódu dokáže udělat běžný uživatel i bez hlubší znalosti programování.

Můžete uvést konkrétní příklad z praxe?

Měl jsem na kurzu například obchodníky, kteří každý den dostávali od externí firmy ceník obsahující 900 000 řádků. Každý obchodník měl za úkol vyfiltrovat si pouze ty produkty, které má na starosti a uložit si je do nového souboru v Excelu. Obchodník tedy ráno přišel, otevřel soubor, filtroval, zakládal nový soubor, kam kopíroval nové položky, ukládal a zavíral zdrojová data. Úkony mu zabraly spoustu času... Po naprogramování jednoduchého makra v jazyce VBA, obchodník ráno přijde, klepne na tlačítko a za 15 sekund má připravena data k práci. Otázka je, co se zbylým volným časem? :-)

Nač kladete vy osobně ve výuce VBA důraz?

Jednoznačně mi jde pochopení principů, praktické využití a umět si dohledat správné informace. Měl jsem možnost vidět, jak VBA učí jiní. Přednášející například sdělil: „Naučme se pracovat s buňkami, budeme probírat objekt Range.“. Na prázdném sešitě, na prázdných buňkách, pak učil všechny jeho možné varianty. Já učím jednotlivé objekty a příkazy na praktických příkladech, které jsem programoval pro různé firmy. Je to stejné jako s angličtinou. Někdo se drtí slovíčka a poté se je snaží nějak zakomponovat do vět. Podle mého názoru, by se slovíčka měla učit ve větách. Stejně tak příkazy a objekty VBA by se měly učit na praktických příkladech.


Naučte se používat a zdokonalte se v jazyce VBA

Kurzy VBA v Computer Help jsou třídenní a probíhají v šestihodinových blocích s pauzami. Vyvážený poměr teorie a praktických cvičení napomáhá lepšímu zafixování získaných znalostí a udržení pozornosti studentů.

Computer Help připravuje celkem čtyři navazující kurzy jazyka VBA:

VBA-0 – úvodní teoretický kurz pro začátečníky bez znalostí programování, který nabízí základní průpravu v jazyce VBA, vysvětluje důležité termíny a pojmy týkající se algoritmizace a objektového programování. Více informací o kurzu.

VBA-1 – navazující praktický kurz pro všechny, kteří chtějí začít programovat ve VBA a naučit se, jak pomocí VBA manipulovat se základními objekty Excelu. Více informací o kurzu.

VBA-2 – pokročilejší kurz pro uživatele se znalostí základů práce s VBA kódem v prostředí MS Excel, kteří si chtějí své znalosti rozšířit o práci s procedurami, programování formulářů, kontingenčních tabulek a grafů. Více informací o kurzu.

VBA-3 – pokročilý kurz pro uživatele znalé problematiky probírané v předchozích kurzech, který jejich znalosti rozšiřuje o oblast práce se soubory a složkami, spolupráce s ostatními aplikacemi Office, ADO, API a práce s registry. Více informací o kurzu.