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