Instrukcja Select Case

Czasami zadajemy użytkownikowi pytanie np. o wiek i w zależności od tego w jakim przedziale znajduje się jego wiek chcemy wyświetlić jedną z kilku(nastu) wartości. Można to zrobić przy pomocy „litanii ifów”

Sub LitaniaIFow()
    odp = InputBox("Ile masz lat?")
    
    If odp = 0 Then MsgBox "Czesc noworodku!"
    If odp >= 1 And odp <= 17 Then MsgBox "Jestes nieletni"
    If odp >= 18 And odp <= 64 Then MsgBox "Jestes w wieku produkcyjnym"
    If odp >= 65 And odp <= 100 Then MsgBox "Jestes seniorem"
    If odp > 100 Or odp < 0 Then MsgBox "Bez jaj, nie można mieć tyle lat!"
End Sub

Zwróć uwagę, że użyliśmy w niektórych IFach instrukcję and (oba warunki jednocześnie muszą być spełnione) albo or jeden z dwóch warunków musi być spełniony (albo, albo)

Przykładowo mając:

If odp >= 1 And odp <= 17 Then MsgBox "Jestes nieletni"

Owa instrukcja MsgBox wykona się tylko wtedy, gdy zostaną spełnione obydwa warunki (czyli zmienna odp jest większa lub równa 1 i jednocześnie zmienna odp jest mniejsza lub równa 17.

Z kolei w linii:

If odp > 100 Or odp < 0 Then MsgBox "Bez jaj, nie można mieć tyle lat!"

Instrukcja MsgBox wykona się wtedy gdy zmienna odp jest większa od 100 lub mniejsza od 0

Jednak zamiast „litanii IFów” wygodniej jest użyć instrukcję Select Case.

Sub SelectCaseTest()
    odp = InputBox("Ile masz lat?")
    
    Select Case odp
    
    Case 0
        MsgBox "Czesc noworodku!"
        
    Case 1 To 17
        MsgBox "Jestes nieletni"
        
    Case 18 To 64
        MsgBox "Jestes w wieku produkcyjnym"
    
    Case 65 To 100
        MsgBox "Jestes seniorem"
        
    Case Else
        MsgBox "Bez jaj, nie można mieć tyle lat!"
        
    End Select
End Sub

Wróć do spisu treści