zpět na výpis    domů » excel » VBA: větvení kódu pomocí bloku If ... Else ... End If

VBA: větvení kódu pomocí bloku If ... Else ... End If

Publikováno: 7.6.2017

VBA: větvení kódu pomocí bloku If ... Else ... End If

Větvení kódu pomocí bloku If ... Else ... End If se používá v případech, kdy se má vykonat příkaz nebo skupina příkazů při splnění stanovené podmínky. Větvení If odpovídá excelovské funkci KDYŽ() v české lokalizaci a funkci IF() v anglické lokalizaci.

Blok If ... Else ... End if

Jestliže je podmínka vyhodnocena jako PRAVDA (TRUE), pak se vykoná příkaz nebo množina příkazů, které následují ihned za podmínkou. Je-li podmínka vyhodnocena jako NEPRAVDA (FALSE), pak se vykoná příkaz nebo množina příkazů v druhé části kódu.

Option Explicit

Sub podminka()

If podmínka Then
  příkazy TRUE
Else
  příkazy FALSE
End If

End Sub

Je-li požadováno do kódu zahrnout druhou podmínku, pak se zápis kódu mění na If ... ElseIf ... Else ... End If. Příkazy skupiny FALSE jsou vykonány v případě, že obě podmínky nejsou splněny.

Option Explicit

Sub podminka()

If podmínka #1 Then
  příkazy TRUE #1
ElseIf podmínka #2
  příkazy TRUE #2
Else
  příkazy FALSE
End If

End Sub

Analogickým způsobem by se do kódu přidaly další podmínky.

Větvení kódu v praxi #1

Následující kód vyhodnotí, která z hodnot A a B je větší. Jestliže je větší hodnota A, pak je v dialogovém okně vypsána hláška "A je větší než B". Je-li větší B, pak je v dialogovém okně vypsána hláška "B je větší než A".

Option Explicit

Sub Test()

deklarace číselných proměnných
Dim A As Long, B As Long

If A > B Then
  MsgBox "A je větší než B"
Else
  MsgBox "B je větší než A"
End If

End Sub

Větvení kódu v praxi #2

Následující procedura vyhodnotí, zda je buňka A1 prázdná či nikoliv. Na vybranou buňku je odkazováno pomocí vlastnosti Selection. Procedura vypíše do dialogového okna hlášku o výsledku testu. Test je proveden pomocí logické funkce IsEmpty().

Funkce IsEmpty()

Funkce isEmpty() vrací logickou hodnotu TRUE nebo FALSE. Jejím úkolem je otestovat, zda je buňka prázdná či nikoliv.

Option Explicit

Sub Test()

výběr buňky A1
Range("A1").Select

If IsEmpty(Selection) Then
  MsgBox "Buňka A1 je prázdná"
Else
  MsgBox "Buňka A1 není prázdná"
End if

End Sub

Větvení kódu v praxi #3

Následující procedura otestuje, zda je v buňce A1 číselná hodnota či nikoliv. Test je proveden pomocí funkce IsNumeric(). Na vybranou buňku A1 je odkazováno pomocí vlastnosti Selection. Procedura vyhodnotí obsah buňky A1 tím způsobem, že do buňky B1 vypíše hlášku o charakteru obsahu buňky. Posun do buňky B1 je proveden pomocí funkce Offset().

Funkce IsNumeric() a Offset().

Funkce isNumeric() vrací logickou hodnotu TRUE nebo FALSE. Testuje, zda je v buňce číselná hodnota či nikoliv.

Funkce OffSet(rows,columns) zajistí posun vzhledem k původně vybrané buňce nebo rozsahu buněk. Prvním argumentem funkce je počet řádků (rows). Druhým argumentem je počet sloupců (columns).

Option Explicit

Sub Test()

výběr buňky A1
Range("A1").Select

je-li v buňce A1 číslo
If IsNumeric(Selection) Then
  If Selection > 0 Then
    které je větší než nula, je do buňky B1 vložena následující hláška
    Selection.Offset(, 1) = "číslo je větší než nula"
  Else
    jinak je číslo rovno nebo menší než nula
    Selection.Offset(, 1) = "číslo je rovno nebo menší než nula"
  End If
Else
  v buňce není číselná hodnota
  Selection.Offset(, 1) = "v buňce není číslo"
End If

End Sub

Líbí se vám článek a chcete vědět o každém dalším? Dejte Like Financím v praxi na sociálních sítích.

Google+

Sdílejte článek na sociálních sítích

Použité zdroje a literatura
  • BENÁČANOVÁ H.: Tvorba aplikací v Microsoft Office Excel 2. část. Možnosti VBA. Vysoká škola ekonomická v Praze, nakladatelství Oeconomica 2009, Praha. První vydání, 126 stran. ISBN 978-80-245-1602-8
  • Nápověda k aplikaci MS Excel
Nahoru