Přejít na hlavní obsah

Popis Select Case v aplikaci VBA Excel: příklady a funkce použití

V programovacím jazyce VBA (Visual Basic for Applications) se pro práci s buňkami a daty v tabulkách Excelu často používá podmíněný příkaz Select Case. Umožňuje porovnat hodnotu proměnné s více alternativními hodnotami a provádět určité akce v závislosti na náhodě.

Jednou z hlavních výhod Select Case je jeho flexibilita. Může být použit ke kontrole hodnoty jak číselné proměnné, tak řetězcové proměnné. To umožňuje zjednodušit a urychlit různé úkoly v programování.

Syntaxe příkazu Select Case je následující:

Select Case výraz

Case význam1

'blok kódu, který je třeba provést, pokud je výraz roven hodnotě 1

Case význam2

'blok kódu, který je třeba provést, pokud je výraz roven hodnotě 2

Case významy3

'blok kódu, který je třeba provést, pokud se výraz rovná hodnotě 3

Case Else

'blok kódu, který je třeba provést, pokud se výraz nerovná žádné z předchozích hodnot

End Select

Příklad použití Select Case:

Popis Select Case VBA Excel a jeho aplikace

Syntaxe Select Case je následující:

Select Case выражениеCase значение1' Код, который будет выполнен, если выражение равно значению1Case значение2' Код, который будет выполнен, если выражение равно значению2Case Else' Код, который будет выполнен, если выражение не равно ни одному из указанных значенийEnd Select

Výraz je proměnná nebo výraz, který bude porovnáván s uvedenými hodnotami. Hodnota 1, hodnota 2 atd. jsou možné hodnoty, se kterými se bude porovnávat.

Výhodou použití Select Case je, že vám umožňuje uspořádat logickou strukturu kódu s mnoha možnostmi, díky čemuž je přehlednější a snadněji čitelný. Kromě toho mohou být bloky kódu pro každý případ jakékoli složitosti a mohou zahrnovat jak jednu akci, tak více řádků kódu.

Je důležité poznamenat, že ve větě Case lze použít nejen konkrétní hodnoty, ale také rozsahy hodnot, srovnávací operátory a dokonce i logické výrazy.

Příklad použití Select Case v aplikaci VBA Excel:

Sub Example()Dim day As Stringday = "понедельник"Select Case dayCase "понедельник", "вторник", "среда", "четверг", "пятница"MsgBox "Рабочий день"Case "суббота", "воскресенье"MsgBox "Выходной"Case ElseMsgBox "Некорректное значение дня недели"End SelectEnd Sub

V tomto příkladu, v závislosti na hodnotě proměnné dne, bude v oznámení zobrazena odpovídající zpráva. Pokud hodnota proměnné odpovídá jednomu z pracovních dnů, zobrazí se Zpráva "pracovní den". Pokud hodnota odpovídá víkendovým dnům, zobrazí se Zpráva "výstup". V případě, že hodnota neodpovídá žádnému z uvedených případů, zobrazí se Zpráva "Nesprávná hodnota dne v týdnu".

Na závěr, Select Case je výkonný nástroj v aplikaci VBA Excel, který vám umožňuje efektivně organizovat podmíněné provádění kódu v závislosti na hodnotách proměnných nebo výrazů. Usnadňuje psaní kódu a činí jej strukturovanějším, což zlepšuje jeho čitelnost a udržitelnost.

Příklady použití Select Case v aplikaci VBA Excel pro různé úkoly

Struktura Select Case v aplikaci VBA Excel poskytuje možnost provádět různé operace v závislosti na hodnotě proměnné nebo výrazu. Podívejme se na několik příkladů, které ukazují použití Select Case k řešení různých problémů.

Příklad 1: Výpočet hodnoty objednávky

Předpokládejme, že máme tabulku s údaji o objednávkách v Excelu. Jedním ze sloupců je sloupec "typ objednávky", který uvádí typ každé objednávky: "Standardní", "prioritní"nebo " express". Musíme vypočítat hodnotu každé objednávky podle jejího typu.

№Typ objednávkyNáklady
1Standardní
2Přednostní
3Rychlík

K vyřešení tohoto problému lze použít Select Case následovně:

Sub Vypočítatpoužití () Dimpříkaz As String Dim náklady As Double ' přepočet všech řádků tabulky For I = 2 To Range ("A" & Rows.Count).End(xlUp).Row typ objednávky = Range ("B" & i).Hodnota ' výpočet hodnoty v závislosti na typu objednávky Select Case typ objednávky Case "standardní" hodnota = 100 Case "prioritní" hodnota = 200 Case "Express" hodnota = 300 Case else hodnota = 0 end Select ' záznam hodnoty do tabulky Range("C" & i).Hodnota = hodnota Next I End Sub

V tomto příkladu nastavíme hodnotu proměnné typové objednávky, přečteme ji z tabulky a v závislosti na její hodnotě stanovíme hodnotu objednávky. Ve výchozím nastavení, pokud hodnota proměnné neodpovídá žádné z daných možností, je hodnota nastavena na 0.

Příklad 2: Definice sezóny roku

Představme si, že v Excelu máme datovou sadu a chceme určit, do které sezóny se každé datum vztahuje: jarní, letní, podzimní nebo zimní.

DatumSezóna
01.03.2025
15.07.2025
10.10.2025
25.12.2025

K vyřešení tohoto problému lze použít Select Case následovně:

Sub Určitsezóna () Dim Datum As Date Dim sezóna As String ' přeřazení všech řádků tabulky For I = 2 To Range ("A" & Rows.Count).End(xlUp).Row Datum = Range ("A" & i).Value ' definice sezóny v závislosti na Měsíci data Select Case Month(Datum) Case 12, 1, 2 Season = "zimní" Case 3 to 5 Season = "jarní" Case 6 to 8 Season = "letní" Case 9 To 11 Season = "podzimní" Case else Season = "" End Select"vstup sezóny do tabulky Range ("B" & i).Value = sezóna Next I End Sub

V tomto příkladu získáme hodnotu proměnné datum z tabulky a poté pomocí funkce Month určíme měsíc data. Dále v závislosti na Měsíci nastavíme hodnotu proměnné sezóna a zapíšeme ji do tabulky. Pokud hodnota měsíce neodpovídá daným možnostem, hodnota proměnné sezóna je nastavena prázdná.

Struktura Select Case je tedy velmi pohodlná pro řešení různých úkolů v aplikaci VBA Excel. Namísto dlouhých řetězců podmíněných operátorů If-Then-Else poskytuje kompaktnější a srozumitelnější způsob správy toku programu.