Tento článek je o jednoduchém ošetření chybových stavů v makrech.

Většina maker může skončit chybou. Pokud se tak stane a chyba není nijak ošetřená, Excel prostě skočí do editoru VBA, a tam chybu ukáže. To je fajn při ladění programu, ale uživatelsky už to tak moc fajn není.

Když chyba, tak něco

Je tedy lepší možnost chyby ošetřit a v případě chyby např. zobrazit varovnou hlášku.

Zařídí se to tak, že před samotný obsah makra přidáme příkaz:

  • On Error Goto …

Makro pak může vypadat například takto:

Sub makro_s_chybou()
'Pokud skončí makro chybou, jdi na "chybova_hlaska"
On Error GoTo chybova_hlaska

'Samotný obsah makra

'Ukončení samotného makra
Exit Sub

'Místo, kam se přejde v případě chyby
chybova_hlaska:

'Obsah chybové hlášky
msgbox("Makro nemohlo správně proběhnout")

'Konec chybové hlášky
End Sub

Když chyba, tak jdi dál

Makro také můžeme nastavit tak, aby se v případě chyby chybný řádek prostě překročil. Například toto makro sice obsahuje dělení nulou, ale doběhne normálně do konce – díky příslušnému příkazu na začátku. Samozřejmě 

Sub preskoceni_chyby()

'Nastavení makra tak, že ignoruje chybu
On Error Resume Next

'Samotný obsah makra
a = 8 / 0

'Konec chybové hlášky
End Sub