dnes je 7.7.2022

Input:

Excel 2007: Makra — VBA — Ladění programu – 2. část

28.4.2011, , Zdroj: Verlag Dashöfer

V předchozím článku jsme si vytvořili příklad, na kterém se blíže seznámíme s ladícími prostředky VBE. Dnes začneme tento nesmírně důležitý nástroj zkoumat podrobněji.

Podkladová úloha: Minule jsme strojili makro, které budeme ladit. Zvolili jsme si jednoduchou úlohu, kde na listu jsou řádky, a pokud se v kterékoli buňce v řádku objeví slovo „Celkem“, tak buňku v tomto řádku a sloupci naformátujeme tučnou červenou kurzívou. A naopak, pokud tam nikde „Celkem“ nebude, makro zajistilo, aby nebyla ani tučně ani kurzívou, a byla černě.

Stáhněte si sešit 2011-9 Ladeni_programu.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:

Makro vypadá takto. Viz obrázek:

Postavíme se do Excelu selektorem na buňku C1 a provedeme krokované spuštění makra. Viz obrázek:

Před stiskem tlačítka „Krokovat s vnořením“ vybereme makro „MD_Celkem.Procházej_radky“, které je na předchozím obrázku červeně orámováno.

Pokud se Vám zobrazila i další makra, a seznam nabízených maker je nepřehledný, zvolte v  dialogovém okně  „Makro“ v rámečku „Makra v“ nikoli „Všechny otevřené sešity“, ale pouze „Tento sešit“, jak je vidět na předchozím obrázku.

Program přejde do VBE a zastaví se na první instrukci:

Všimněte si, že nahoře vpravo je v rámečku uvedeno makro, které bylo vyvoláno a první instrukce je žlutě zvýrazněna. V levém pruhu je umístěna žlutá šipka.

Nyní se seznámíme s krokovacími možnostmi. Myší klepněte na menu „Debug“ nahoře a uvidíte toto:

Pro rozumné ladění je téměř nevyhnutelné se naučit zpaměti klávesové zkratky v seznamu uvedené:

F8 – proveď instrukci, na niž ukazuje žlutá šipka, a přejdi o krok dál

Shift+F8 – proveď instrukci, na níž ukazuje šipka, a pokud je součástí instrukce vyvolání podprogramu, neukazuj podrobnosti krokování v tomto podprogramu. Místo toho přejdi na další instrukci v tom programu, který se zobrazuje v rámečku nahoře.

Ctrl+Shift+F8 – pokud ses nechtěně dostal v krokování do podprogramu, a nechceš se zdržovat krokováním zde, tak touto klávesovou zkratkou se dostaneš na stejné místo, jako bys předtím stiskl <Shift+F8>.

Ctrl+F8 – pokud si předem nastavíš kurzor na některý řádek níže – např. po průchodu nějakým cyklem, který by se prováděl mockrát, a tebe by to unavovalo, můžeš se rychle přesunout v běhu programu až před provedení instrukce, na jejímž řádku kurzor stojí.

Další položky z menu Debug si ponecháme na později. Nyní se pustíme do krokování programu tak, že budeme opakovaně tisknout <F8>. Všimněte si, že žlutá šipka se zastavuje jen na instrukcích, které za chodu něco dělají. Tedy přeskakuje instrukce Dim a komentáře.

Žlutá šipka se zastavila před instrukcí „Range("A1").Select“. Než ji provedete, ujistěte se pohledem do Excelu, že je selektor stále ještě na buňce „C1“. Pak se vraťte do VBE,

Nahrávám...
Nahrávám...