Załącznik z przykładami dla tego rozdziału znajduje się w tym miejscu.
Poprzednio omawialiśmy instrukcję warunkową If, która świetnie sprawdza się w sytuacji, kiedy mamy jednoznaczne rozstrzygnięcie postawionego warunku: albo jest spełniony, albo nie. Zdarzają się jednak sytuacje, w których możliwych rozstrzygnięć jest więcej - kiedy np. określone wyrażenie lub warunek może przyjąć więcej rozwiązań. Oczywiście, czasami wystarczy (i jest zasadne) zagnieżdżenie kolejnej instrukcji If - natomiast najczęściej w takich sytuacjach z pomocą przychodzi instrukcja Case.
Option Explicit
Sub case_in()
Select Case Cells(1, 1)
Case 1
Cells(1, 2) = "jedynka"
Case 2
Cells(1, 2) = "dwójka"
Case 3 To 4
Cells(1, 2) = "liczba od 3 do 4"
Case Is > 4
Cells(1, 2) = "więcej niż 4"
Case Else
Cells(1, 2) = "coś innego"
End Select
End Sub
Prozaiczny przykład przedstawiony powyżej prezentuje, jakim tekstem ma być wypełniona komórka B1, w zależności od liczby znajdującej się w komórce A1. Instrukcja Select Case może być użyta zarówno w odniesieniu do zmiennej, jak i innego obiektu (u nas jest to akurat zawartość komórki nie przypisana do zmiennej). Pierwsza linia zawierająca samo polecenie Select Case sygnalizuje jego użycie. Zaraz po niej definiujemy wyrażenie logiczne, które będziemy sprawdzać (my pytamy o komórkę - ale to może być całe wyrażenie z operatorami i nawiasami - tak jak w przypadku instrukcji If). Kolejne linie prezentują wyniki sprawdzanego warunku: np. Case 1 oznacza: "co jeśli jeden", po czym następuje polecenie lun sekwencja poleceń. Jako wynik możemy też definiować przedziały zamknięte i otwarte (u nas odpowiednio "3 To 4" oraz "Is > 4"). Na koniec, o ile nie jest to pozbawione sensu, możemy wykorzystać instrukcję Case Else, która mówi - "a co jeśli żaden z powyższych wyników nie wystąpił". Całość zamykamy poleceniem End Select.