GWARANTOWANE TERMINY
Jesteś tutaj: strona głównastrefa wiedzyKurs VBA: Instrukcja Select Case
MENU

Kurs VBA: Instrukcja Select Case


Kategoria: Kurs VBA, Kurs Excel
4Jun

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
        Case warunek1
            'wykonywany jeśli warunek1 jest prawdziwy
        Case warunek2
            'wykonywany jeśli warunek2 jest prawdziwy
        Case Else
            'wykonywany gdy warunki są fałszywe
    End Select

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()
    wynik = WorksheetFunction.RandBetween(1, 6)
    Select Case wynik
        Case 1
            MsgBox "jeden"
        Case 2
            MsgBox "dwa"
        Case 3
            MsgBox "trzy"
        Case 4
            MsgBox "cztery"
        Case 5
            MsgBox "pięć"
        Case Else
            MsgBox "sześć"
    End Select
End Sub

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:

 

Licencja Creative Commons
Kurs VBA: Instrukcja Select Case by Cognity is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne 4.0 Międzynarodowe License.

Wybrani Klienci:

Ten serwis używa plików cookies. Brak zmiany ustawień przeglądarki oznacza zgodę na ich używanie.
Więcej informacji o plikach cookies znajdziesz tutaj
Kliknij ZGADZAM SIĘ, aby ta informacja nie wyświetlała się ponownie
Cognity.pl