Příkaz Select Case

Příkaz umožňuje větvení programu v závislosti na hodnotě výrazu.

Syntaxe příkazu

Select Case výraz 
Case seznam_výrazů1
    příkazy
[Case seznam_výrazů2 
    [příkazy]]
[Case Else
    [příkazy]]
End Select

Výraz je jakýkoliv výraz, jehož hodnota ovlivňuje průběh programu. Seznamy výrazů jsou vypsané hodnoty, jejich rozsah, což jsou dva výrazy oddělené slovem To, případně podmínka s použitím operátoru Is. V případě, že hodnota výrazu vyhovuje některému případu, provede se blok příkazů uvedených za ním a poté se podmíněný příkaz ukončí.
V případě, že vstupní hodnota nebude vyhovovat žádnému případu a bude v kódu část Case Else, provede se blok příkazů uvedených v této části. Jednotlivé podoby členů seznamu výrazů se mohou libovolně kombinovat.

Např.
Case 1 to 5, -1, Is > a


Př. Zjistěte zda je číslo kladné, záporné, nebo 0.

Cislo = Val(InputBox("zadej číslo"))
Select Case Cislo
Case Is > 0
    Vysledek = "kladné"
Case Is < 0
    Vysledek = "záporné"
Case Else
    Vysledek = "nula"
End Select

Př. Určete zda číslo z intervalu 0 až 9 je nula, sudé, nebo liché.

Sub sude()
Dim Cislo As Integer
Cislo = Val(InputBox("zadej číslo od 0 do 10"))
Select Case Cislo
Case 0
MsgBox "je to nula" Case 1, 3, 5, 7, 9 MsgBox "liché číslo" Case 2, 4, 6, 8 MsgBox "sudé číslo" Case Else MsgBox "číslo je mimo interval" End Select End Sub


Oba rozhodovací příkazy jsou ekvivalentní a zaměnitelné. Někdy je však efektivnější použít If a někdy Select Case. Příkaz If je lépe použít tehdy:
- Když máme pouze 1 nebo 2 možnosti.
- Když potřebujeme vyhodnotit složitější podmínky.

Příkaz Select Case vybereme tehdy:
- Když máme více možností.
- Když jsou jednotlivé případy rozlišeny jako hodnoty, jejich seznamy, rozsahy či jednotlivé podmínky.