Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » select-case-excel-vba
Select Case - Excel VBA
Jak vykonat jednu skupinu z několika podle hodnoty výrazu.
Úvodem
Potřebujeme-li vykonat určitou posloupnost příkazu na základě hodnoty příslušného výrazu. Například hodnota příspěvku dle věku dítěte. Velikost slvy podle hodnoty objednávky.
Poznámka: K řešení lze použít příkazy If, Then, ElseIf, Else, čimž docílíte stejného efektu, ale někdy je výhodnější pro přelednost použít Select Case. Co kdy záleží na každém programátorovi.
Trocha teorie
Syntaxe
Select Case testovaný_výraz
[Case seznam_výrazů-n
[příkazy-n]]
[Case Else
[elsepříkazy]]
End Select
Popis
- testovaný_výraz - Povinné. Libovolný číselný výraz nebo řetězcový výraz.
- seznam_výrazů-nPovinné, vyskytne-li se Case. Oddělený seznam položek v následujícím formátu:
- výraz
- výraz To výraz - Klíčové slovo To určuje rozsah hodnot. Menší hodnota musí být uvedena před To.
- Is výraz s operátory_porovnání - Klíčové slovo Is s operátory porovnání (kromě Is a Like) lze použít pro určení rozsahu hodnot.
- kombinace výše uvedených - odděleno čárkou
- příkazy-n - Volitelné. Jeden nebo více příkazů vykonaných, jestliže testovaný_výraz odpovídá libovolné části ze seznamu_příkazů-n.
- elsepříkazy - Volitelné. Jeden nebo více příkazů vykonaných, jestliže testovaný_výraz neodpovídá žádné klauzuli z Case.
Po provedení prvního Case odpovídajícího testovanému výrazu skočí vykonávající program na příkaz hned za End Select. Takže v případě, že by testovaný výraz odpovídal i některé následující podmínce tak tato nebude vykonána. Pouze ta "první".
Neodpovídá-li žádný seznam_výrazů Case testovanému_výrazu a neexistuje-li příkaz Case Else, pokračuje běh příkazem následujícím za příkazem End Select.
Příkazy Select Case mohou být vnořené. Každý vnořený příkaz Select Case musí mít odpovídající příkaz End Select.
Příklad Select Case
V příkladu budeme vyhodnocovat odpověď na otázku v MsBoxu.
Private Sub CommandButton1_Click()
i = MsgBox("Chcete větši plat?", vbYesNo, "Plat")
' vyhodnocení odpovědi
Select Case i
Case vbNo
MsgBox ("NE")
Case vbYes
MsgBox ("ANO")
End Select
End Sub
Příklad 2 - Select Case
Příklad kdy je potřeba použít více podmínek pro jeden výraz.
Case 1 To 4, 7 To 9, 11, 13
Příklad 2 - Select Case
Příklad kdy se kontroluje rozsah.
Case Is > MaxCislo
Příklad 3 - Select Case
Cislo = 8 ' Inicializuj proměnnou.
Select Case Cislo ' Vyhodnoť Cislo.
Case 1 To 5 ' Cislo leží v intervalu 1 až 5.
Debug.Print "Mezi 1 a 5"
' Následující větev Case je jediná, která se vyhodnotí jako True.
Case 6, 7, 8 ' Cislo leží v intervalu 6 až 8.
Debug.Print "Mezi 6 a 8"
Case Is > 8 And Cislo < 11 ' Cislo se rovná 9 nebo 10.
Debug.Print "Větší než 8"
Case 8 ' Cislo lje 8.
' Následující větev Case ač odpovída podmínce nebude vykonána
Debug.Print "Je 8"
Case Else ' Jiné hodnoty.
Debug.Print "Neleží mezi 1 a 10"
End Select
Poznámka: Místo výpisu do MsgBox lze použít Okamžité okno, kde vidíme zda nám příklady fungují.
Postřehy z praxe
Klauzule Case Else se používá k označení elsepříkazů, které se vykonávají, nebude-li v seznamu_výrazů nalezen odpovídající výraz. Sice je volitelný, ale já ho doporučuji dávat. Prostě pro jistotu, kdyby se dostala do case nepředvídantelná hodnota.
Poznámka: Operátor porovnání Is není identický s klíčovým slovem Is používaným v příkazu Select Case.
Další příklady
Méně obvyklé příklady použítí výrazu Case.
Case odpovídá řetězcům, které jsou shodné s “vše“, řetězcům, které náleží mezi “ořechy“ a “polévka“
Case "vše", "ořechy" To "polévka"
Case odpovídá hodnotě proměnné TestItem
Case TestItem
Závěrem
Ostatní nespecifikováno ohledně Case Select, snad někdo z čtenářů zodpoví v komentářích :).
Článek byl aktualizován: 15.12.2011 20:36
Další články k tématu
- Deklarace konstant
- Proměnné
- Pole úvod
- Pole prakticky
- If, Then, ElseIf, Else - podmínky
- With ... End With
- Select Case - právě čtete
- For Next - Cykly
- Do ... Loop
- While ... Wend
- Exit
- Goto
- OnKey - monitorování a reakce na stisk kláves
Komentáře zatím nejsou
Můžete být prvními co zanechají smysluplný komentář.
Přidání nového komentáře
Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu.
Nejnovější článek
Z článku o
excel jsem jako poslední přidal či upravil článek
14.05.2012:
Kombinování funkcí - vzorců.
Nejčtenější článek
Excel
- Základy MS Excel
- menu Soubor
- Formát dat
- Vložit
- Grafy
- Vzorce (Funkce)
- Matice
- Data
- Revize (Nástroje)
- VBA Úvod a seznamy článků
- VBA Teorie základy
- VBA Buňky cell
- VBA Listy sheet
- VBA Práce se soubory
- VBA Formuláře (UserForm)
- VBA Grafy
- VBA Application
- VBA Pás karet, Menu
- VBA Triky
- VBA praktické příklady kódu
- Praktické příklady
- Finanční poradce
- Šablony - Templates
- Testy
- Ostatní
Google+
Novinky
Matematické rovnice (vzorce) - Word 2010
Excel: 14.05.2012:
Kombinování funkcí - vzorců
Access: 28.04.2012:
VBA - Jak spustit v MS Access
Power Point: 25.04.2012:
SmartArt - PowerPoint 2010
Outlook 26.04.2012:
Outlook 2010 - jak vypadá
Project: 05.04.2012:
Kalendář ukázka
OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky
Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office
Poděkování
Translate
Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková |
753
Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.