Kurs VBA: Instrukcja Select Case
Kategoria: Kurs VBA, Kurs Excel

Celem wykorzystania Instrukcji warunkowej Select Case jest zwiększenie elastyczności makra poprzez wykonywanie określonych fragmentów kodu zgodnie z danymi, które zostały pobrane od użytkownika. Zachęcamy do zapoznania się z artykułem, w którym nasz trener przybliża to zagadnienie. Poniższy temat jest szczegółowo omawiany podczas kursu VBA w Excelu.
Schemat działania instrukcji Select Case
Instrukcja Select Case jest rodzajem instrukcji warunkowej, w którym różnica pomiędzy zwykłą instrukcją warunkową, a instrukcją Select Case polega na tym, że instrukcja If ... Then stale rozpatruje tylko jeden warunek, natomiast w instrukcji Select Case rozpatrywanych może być cały szereg warunków, do których można przypisać operacje, jakie będą wykonane w momencie jego spełnienia.
Składnia instrukcji Select Case
Select Case kwota |
Jeśli warunek1 jest prawdziwy, to następuje wykonanie instrukcji w tym warunku oraz wyjście z instrukcji Select. W przeciwnym przypadku następuje sprawdzenie warunku2. Kroki są powtarzane podobnie, jak w przypadku warunku1. Jeśli żaden z warunków nie zostanie spełniony, to zostanie wykonana instrukcja Case Else. Dokładniej, po natrafieniu przez kompilator na wiersz, który otwiera instrukcję Select Case, wyliczana będzie aktualna wartość określonego w nim wyrażenia, następnie kompilator sprawdzi po kolei wszystkie wiersze opisane w środku instrukcji Select Case. Gdy stwierdzi, że wartość określona dla któregoś z wierszy będzie równa wyliczonej wcześniej wartości wyrażenia podstawowego, wykona wszystkie polecenia zawarte w tym wierszu, a następnie opuści całą instrukcję Select Case.
Przykłady zastosowania Case Else
Podatek
Poniżej została podana konstukcja instukcji Select Case, w celu obliczenia podatku dla podanej kwoty przez użytkownika. Warunki obliczania podatku w zależności od początkowej kwoty:
- kwota <= 0, to podatek = 0
- kwota > 0 oraz kwota <= 25000, to podatek = 0,1 * podatek
- kwota > 25000 oraz kwota <= 60000, to podatek = 0,2 * podatek
- kwota > 60000 oraz kwota <= 200000, to podatek = 0,3 * podatek
- kwota > 100000, to podatek = 0,4 * podatek
Sub podatek() kwota = CDbl(InputBox("Podaj kwotę")) Select Case kwota Case Is <= 0 MsgBox "0" Case Is < 25000 MsgBox kwota * 0.1 Case Is < 60000 MsgBox kwota * 0.2 Case Is < 200000 MsgBox kwota * 0.3 Case Else MsgBox kwota * 0.4 End Select End Sub |
W makrze podatek pobierane są dane od użytkownika do zmiennej kwota (wcześniej wyrażenie jest konwertowane na typ zmiennoprzecinkowy), a następnie w zależności od podanej kwoty obliczany jest podatek zgodnie z założeniami np. jeśli osoba zarabia 1000 j. p. to wykonywane jest tylko jedno działanie (1000 * 0,1 = 100). Pozostałe warunki, mimo, że są spełnione - są ignorowane, ponieważ w instrukcji Select Case wykonywany jest wyłącznie jeden warunek.
Rzut kostką
Celem makra jest zasymulowanie rzutu kostki do gry. Po losowaniu liczby, powinnien zostać wyświetlony komunikat w postaci nazwy cyfry w mianowniku w liczbie pojedynczej.
Sub kostka() |
Na wyżej wymienionych przykładach widać, że można sprawdzać pewien przedział, do którego może należeć liczba, ale również sprawdzać konkretne wartości.
Uwaga! Przykłady mają na celu pokazanie działania pewnych konstrukcji programistycznych. Autor zdaje sobie sprawę z tego, że kod ww. przykładów nie jest optymalny.
Autorem tekstu jest Grzegorz Plak - trener Cognity.
Możesz być również zainteresowany:
Kurs VBA: Instrukcja Select Case by Cognity is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne 4.0 Międzynarodowe License.
Więcej informacji znajdziesz w artykułach:
Uzupełnianie pustych komórek w Excelu

Zainteresować Cię może również:
Networking w poszukiwaniu pracy
