Select Case naredba u VBA -
Kontrola toka programa u VBA
Ova naredba Select Case je naredba korisna za izbor
između 3 ili više opcija, mada radi i sa manje i
dobra je alternativa If naredbi. Select
Case ima slijedeću sintaksu:
Select Case TestniIzraz
Case Izraz1
Upute1
...
Case IzrazN
UputeN
Case Else
PodrazumijevaneUpute
End Select
Ovjde TestniIzraz predstavlja izraz (najčešće
jedna varijabla) čija se vrijednost provjerava i u
zavisnosti od toga koji od izraza Izraz1, ...,IzrazN
odgovara toj vrijednosti izvršavaju se odgovarajuće
Upute. Jednostavnije, TestniIzraz određuje
koje će se Upute izvršiti. Riješimo prethodni
primjer sa ispisom ocjene studenta pomoću Select
Case naredbe.
Poruka = "Student je dobio
ocjenu"
Select Case BrojBodova
Case Is >= 90
Poruka = Poruka + "A"
Case Is >= 80
Poruka = Poruka + "B"
Case Is >= 70
Poruka = Poruka + "C"
Case Is >= 60
Poruka = Poruka + "D"
Case Is >= 50
Poruka = Poruka + "E"
Case Else
Poruka = Poruka + "F"
End Select
MsgBox Poruka
Uočimo upotrebu ključne riječi Is da se
specificira raspon vrijednosti. Ako pretpostavimo da
broj bodova može biti samo cijeli broj, prethodna
naredba bi se mogla napisati i na slijedeći način:
U ovom obliku smo koristili ključnu riječ To za
specificiranje raspona. Ako je broj Bodova cijeli
broj, onda se
Case 80 To 89 ili (Case Is >= 80)
može zapisati i kao
Case 80, 81, 82, 83, 84, 85,
86, 87, 88, 89
gdje navodimo sve moguće vrijednosti koje može uzeti
varijabla BrojBodova i razdvajamo ih
zarezima. Ovaj primjer baš i ne opravdava upotrebu
ovakvog načina zadavanja vrijednosti, ali je pogodan
za ilustraciju. Ključna riječ Is može se
kombinirati tako da se obuhvaćaju različiti
rasponi koji nisu susjedni. Izrazi se odvajaju
zarezima. Na primjer, slučajem
Case Is > 90, 33, 50 To 60
bi se obuhvatili brojevi veći od 90, broj 33 i
brojevi između 50 i 60. (primjer uz
dozvolu prenesen iz materijala sa predavanja prof.
S.Đukanović)
Još jedan primjer Select Case/End Select petlje
u VBA za Excel
Sub TheSelectCase()
Select Case Range("B1").Value
Case 200
Range("C1") = 50
End Select
End Sub
|