Encyklopedie

Ladění kódu VBA, Excel makra

Víte jaké jsou možnosti ladění kódu v prostředí editoru VBA. Stručný přehled obsahuje následující článek.

Jistě to znáte. Napíšete v editoru VBA kód a ten nefunguje tak, jak má. Pojďme si představit různé možnosti, jak kód můžete odladit, tak aby vše fungovalo a šlapalo jak na drátkách.

Nejzákladnější kontrola správně napsaného řádku, to že editor VBA správně přečetl kód je automatické přidání mezer mezi operátory (=, +, …), nastavení velkých písmen proměnných či příkazů a popřípadě barevné zvýraznění. K této kontrole dojde automaticky při odskočení na další řádek (Enter či kurzorová šipka). Na obrázku je vidět automatická změna řádku z a=activeworkbook.path na a = ActiveWorkbook.Path.

Další část kódu na ukázce poukazuje na možnosti vypsání hodnoty proměnné a. První možností je Message Box (MsgBox a), který vypíše hodnotu do dialogového okna.

Druhou možností (Debug.Print a) je vypsání hodnoty do okna Immediate v editoru VBA.

Třetí možností je při spuštění makra (např. při krokování spuštěném klávesou F8) najet kurzorem myši v editoru VBA na proměnnou.

Další možností je při spuštěném makru zjistit hodnotu v okně Immediate. Zápisem ?a

Jaké jsou možnosti kontroly správně napsaného makra?

Tou pravděpodobně nejčastěji používanou jev samotné spuštění makra. Při chybě se objeví dialogové okno s chybovým hlášením a při stisku Debug se označí chybný řádek.

Označení chybného řádku.

Jinou možností, jak provést kontrolu správně syntakticky napsaného makra je použití příkazu Debug → Compile VBA Project. Výhodou tohoto řešení je to, že nemusíte makro spouštět a tím provádět v sešitě nevratné změny.

Další možností, jak ladit makro je rozkouskovat ho na několik částí. A ty spustit postupně např. pomocí klávesy F5 (Run makro). K rozdělení makra na více částí slouží tzv. Breakpointy. Ty je možné přidat do kódu klepnutím vlevo vedle daného řádku do šedé plochy nebo také pomocí Příkazu Toggle Breakpoint (F9).

Makro je nutné spustit dvakrát. Nejprve se vykoná první část kódu až do řádku „MsgBox a“ poté zbylá část kódu.

Breakpointy je možné odstranit i hromadně pomocí příkazu Debug → Clear All Breakpoints (Ctrl + Shift + F9)

Jiným přístupem k ladění makra je zakomentování vybraných řádků, které se poté při spuštění makra přeskakují.

 

Různé možnosti odladění maker si můžete vyzkoušet na kurzech:

Excel – úvod do maker

Excel – makra