V programovacím jazyce VBA (Visual Basic for Applications), který se používá v Excelu k automatizaci úloh, je často nutné provádět různé akce v závislosti na hodnotě proměnné nebo výrazu. K řešení těchto problémů lze použít příkaz Select Case.
Příkaz Select Case vám umožňuje porovnat hodnotu proměnné nebo výrazu s více možnostmi hodnot a provádět určité akce v závislosti na shodě. Tento design je vhodný, když je třeba provést různé operace pro různé hodnoty proměnné.
Syntaxe příkazu Select Case v VBA Excel je následující:
Select Case výraz
Poté lze určit jednu nebo více možností hodnot, se kterými bude výraz porovnáván:
Case význam1Case význam2
Case významy3
.
Case Else
Pokyny, které musí být provedeny pro každou možnost hodnot, jsou zaznamenány po každém příkazu Case. Pokud se hodnota proměnné nebo výrazu shoduje s jednou z uvedených hodnot, budou splněny pokyny následující po příslušném příkazu Case. Pokud se žádná hodnota neshoduje, budou splněny pokyny po příkazu Case Else (pokud je uvedena).
Jak používat funkci Select Case
Základní syntaxe funkce Select Case je následující:
Select Case expressionCase value1' действия, выполняемые в случае, если expression равно value1Case value2' действия, выполняемые в случае, если expression равно value2Case Else' действия, выполняемые в случае, если ни одно из условий не выполненоEnd Select
Zde je expression výrazem nebo proměnnou, jejíž hodnotu je třeba zkontrolovat. Value1, value2 atd.D. jsou hodnoty, se kterými se bude porovnávat.
Konstrukce Case Else je volitelná a platí, pokud žádná z podmínek nesplňuje hodnotu expression. Pokud se hodnota expression shoduje s hodnotou value1 nebo value2, jsou prováděny akce uvedené za příslušným příkazem Case.
Zvažte příklad použití funkce Select Case k určení dne v týdnu podle jeho čísla:
Sub DetermineWeekday()Dim weekdayNumber As IntegerweekdayNumber = 3Select Case weekdayNumberCase 1MsgBox "Понедельник"Case 2MsgBox "Вторник"Case 3MsgBox "Среда"Case 4MsgBox "Четверг"Case 5MsgBox "Пятница"Case 6MsgBox "Суббота"Case 7MsgBox "Воскресенье"Case ElseMsgBox "Неверный номер дня недели"End SelectEnd Sub
V tomto příkladu má proměnná weekdayNumber hodnotu 3, která odpovídá prostředí. Po provedení tohoto kódu se zobrazí okno zprávy s textem "prostředí". Pokud hodnota proměnné weekdayNumber nebude 1-7, zobrazí se okno zprávy s textem "nesprávné číslo dne v týdnu".
Funkce Select Case tak umožňuje pohodlně a efektivně zpracovávat různé hodnoty proměnné nebo výrazu v jazyce VBA Excel.
Příklady použití funkce Select Case
Příklad 1:
Sub Example1()Dim score As Integerscore = 90Select Case scoreCase 90 To 100MsgBox "Отлично!"Case 80 To 89MsgBox "Хорошо!"Case 70 To 79MsgBox "Удовлетворительно!"Case ElseMsgBox "Неудовлетворительно!"End SelectEnd Sub
V tomto příkladu, v závislosti na hodnotě proměnné score, bude na obrazovce zobrazena odpovídající zpráva. Pokud je skóre 90 nebo více, zobrazí se Zpráva " skvělé!"pokud je skóre v rozmezí 80 až 89, zobrazí se Zpráva" dobře!"pokud se skóre pohybuje mezi 70 a 79, zobrazí se Zpráva "uspokojivé!"ve všech ostatních případech bude odeslána zpráva" neuspokojivé!".
Příklad 2:
Sub Example2()Dim dayOfWeek As StringdayOfWeek = "Пятница"Select Case dayOfWeekCase "Понедельник", "Вторник", "Среда", "Четверг", "Пятница"MsgBox "Рабочий день"Case "Суббота", "Воскресенье"MsgBox "Выходной день"Case ElseMsgBox "Неверное значение"End SelectEnd Sub
V tomto příkladu se v závislosti na hodnotě proměnné dayOfWeek zobrazí odpovídající zpráva na obrazovce. Pokud se dayOfWeek rovná "Pondělí", "Úterý", "Středa", "Čtvrtek" nebo "pátek", zobrazí se Zpráva "pracovní den", pokud se dayOfWeek rovná "sobota" nebo "neděle", zobrazí se Zpráva "den volna", ve všech ostatních případech se zobrazí zpráva "Nesprávná hodnota".
Příklad 3:
Sub Example3()Dim grade As Stringgrade = "A"Select Case gradeCase "A", "B"MsgBox "Отлично!"Case "C", "D"MsgBox "Хорошо!"Case "E", "F"MsgBox "Удовлетворительно!"Case ElseMsgBox "Неудовлетворительно!"End SelectEnd Sub
V tomto příkladu se v závislosti na hodnotě proměnné grade zobrazí odpovídající zpráva na obrazovce. Pokud se stupeň rovná " A "nebo " B", zobrazí se Zpráva " vynikající!"pokud se stupeň rovná" C "nebo " D", zobrazí se Zpráva " dobře!", pokud se stupeň rovná " E "nebo " F", zobrazí se Zpráva " uspokojivé!"ve všech ostatních případech bude odeslána zpráva" neuspokojivé!".