Etusivu Aloitus Kontrollit Metodit Muuttujat Ohjausrakenteet Silmukat Matematiikka Debuggaus Virheenkäsittely Vuorovaikutus Valikot Tiedostonkäsittely Ikkunat Leikepöytä Drag and Drop Tiedostopäätteet Linkkejä Harjoitukset
If ehto_1 Then suoritettava ohjelmakoodi 1 [Elseif ehto_2 Then suoritettava ohjelmakoodi 2] [Elseif ehto_n Then suoritettava ohjelmakoodi n] [Else suoritettava ohjelmakoodi n+1] End IfKäytännössä edellisen "rimpsun" voi lukea siten, että If -lausetta käytettäessä If -lause on pakollinen, Elseif ja Else -lausekkeita voi käyttää halutessaan. Lähdetään pureutumaan lausekkeisiin esimerkkien kautta.
Private Sub Command1_Click() Dim X As Long X = 15 If X = 15 Then MsgBox "X on viisitoista" End If End SubEsimerkissämme määrittelemme muuttujan X ja annamme sille alkuarvon 15. Sitten seuraa varsinainen asia eli If -lause. Vertaamme If -lauseessa muuttujan X -arvoa lukuun 15. Tässä tapauksessa X:n arvo on 15, joten suoritamme If -lauseen sisällä olevan ohjelmakoodin.
Private Sub Command1_Click() Dim X As Long X = 3 If X = 15 Then MsgBox "X on viisitoista" End If End SubEdellisessä esimerkissä X:n arvo on 3, joten If -lause ei toteudu. Entäpä jos haluamme verrata useampaa kuin yhtä arvoa:
Private Sub Command1_Click() Dim X As Long X = 3 If X = 15 OR X = 3 Then MsgBox "X on viisitoista tai kolme" End If End SubNyt tutkimme ensin onko X:n arvo viisitoista TAI onko X:n arvo kolme. No, X:n arvo on kolme, joten lause on totta (True) ja voimme suorittaa If -lauseen sisältämän ohjelmakoodin. Lisätietoja ehtojen yhdistämisestä täällä.
Private Sub Command1_Click() Dim X As Long X = 76 If X = 15 OR X = 3 Then MsgBox "X on viisitoista tai kolme" Elseif X > 15 AND X < 50 Then MsgBox "X on suurempi kuin 15 JA pienempi kuin 50" Elseif X > 50 Then MsgBox "X on suurempi kuin 50" Else MsgBox "X on jotain muuta kuin edelliset ehdot" End If End SubViimeisessä If Then Else -esimerkissämme yhdistimme kaikki ominaisuudet eli käytimme If:iä, Elseif:iä ja Else:ä. Huomaa, että lausekkeiden järjestys on oltava edellä näytetty eli sinulla ei voi olla Else -lause esim. Elseif -lausekkeiden välissä.
Private Sub Command1_Click() Dim X As Long Dim Y as Long X = 3 Y = 6 If (X = 15 OR X = 3) AND (Y > 1) Then MsgBox "X on oltava JOKO viisitoista TAI kolme JA Y on oltava suurempi kuin 1" End If End SubKuten ehkä huomasitkin, osa ehdoista on laitettu sulkujen sisään jotta ehtolausekkeita olisi helpompi ymmärtää.
Select Case iMuuttuja Case 1 suoritettava ohjelmakoodi 1 [Case 2 suoritettava ohjelmakoodi 2] [Case 3 to 5 suoritettava ohjelmakoodi 3] [Case 6,7,8 suoritettava ohjelmakoodi 5] [Case Else suoritettava ohjelmakoodi 6] End SelectKun puramme edellä näytetyn formaalin määrittelyn, voimme ymmärtää sen siten, että meillä on oltava Select Case Muuttujan_nimi ja End Select -lauseet. Muuttujan_nimi -paikalla on tietysti verrattava muuttuja. Em. rivien sisällä on oltava vähintään yksi Case -rivi jonka sisältämä ohjelmakoodi suoritetaan JOS muuttujan arvo on sama kuin Case -rivin arvo(t). Voimme esittää Case -rivin arvo(n/t) eri tavoin, yksi tapa on esittää vain yksi arvo kuten Case 1 -kohdassa on tehty. Tässä tapauksessa rivin sisältämät ohjelmakoodirivit suoritetaan jos muuttujan arvo on 1. Toinen tapa on kertoa arvoalue kuten rivillä Case 3 to 5 on tehty, tässä tapauksessa jos muuttujan arvo on 3, 4 tai 5, suoritetaan ohjelmakoodirivit jotka kuuluvat em. Case -lauseen alle. Kolmas tapa on esitellä halutut arvot pilkulla eroteltuina. Viimeinen Case Select -ehdon sisältämä koodirivi suoritetaan jos yksikään edellä olleista Case -riveistä ei ollut toteutunut.
Private Sub Command1_Click() Dim X As Long X = 7 Select Case X Case 0 MsgBox "X on 0" Case 1 To 5 MsgBox "X on 1, 2, 3, 4 tai 5" Case 6, 7, 8 MsgBox "X on 6, 7 tai 8" Case Else MsgBox "X on jokin muu kuin 0-8" End Select End SubEsimerkissämme määrittelimme muuttujan X alkuarvolla 7. Select Case X -rivi kertoo meille, että haluamme tutkia mikä X:n arvo oikein on. Koska X:n arvo on seitsemän, on oikea rivi Case 6, 7, 8 jonka seurauksena suoritamme rivin jälkeen olevan ohjelmakoodirivin MsgBox "X on 6, 7 tai 8".
Huom! Muista, että esimerkeissämme meillä on ollut vain yksi ohjelmakoodirivi ehtojen jälkeen. Ohjelmakoodirivejä voi olla kuitenkin lukematon määrä.