Naredbe specifične za rad sa objektima (For Each…In naredba i With naredba) biće posebno obrađene.
Postoje dva oblika naredbe dodele:
Let promenljiva = izrazili kraće
promenljiva = izraz
Naredba ovog oblika izračunava vrednost izraza i upisuje tu vrednost u promenljivu. Npr, ako je x celobrojna promenljiva (tipa Integer ili Long), tada naredba dodele
x = 3*4-2izračunava izraz 3*4-2 i njegovu vrednost (10) upisuje u promenljivu x. Slično, ako je ind promenljiva logičkog tipa, tada naredba dodele
ind = Falseupisuje vrednost logičkog izraza (False) u promenljivu ind.
Ukoliko su promenljiva i izraz različitih tipova, dolazi do konverzije
Ova naredba je posebna opisana u odeljku o objektima.
Niz naredbi koji se izvršava kao celina (tj. ili se izvršavaju sve naredbe niza ili se nijedna naredba niza ne izvršava) predstavljaju blok naredbu. Blok naredba predstavlja sastavni deo For…Next i For Each…In naredbi. If Then Else naredbe, Select Case naredbe, For…Next petlje, While…Wend petlje, Do…While petlje, Do…Until petlje, For Each…In naredbe i With naredbe.
Uslovno izvršavanje naredbi. Ako je uslov (nekakav logički izraz) ispunjen (tj. ima vrednost True), tada se izvršava If-blok naredbi, a naredbe Else-bloka se ignorišu. U protivnom, ako uslov nije ispunjen (tj. ima vrednost False), naredbe If-bloka se ignorišu, a izvršavaju se naredbe Else-bloka.
If uslov Then naredba 'If-blok naredbi naredba … naredba Else naredba 'Else-blok naredbi naredba … naredba End If
Ponekad je Else-blok prazan, pa se If-naredba navodi u obliku:
If uslov Then naredba 'If-blok naredbi naredba … naredba End If
Ako je uslov ispunjen, izvršava se If-blok naredbi, u protivnom se If-naredba preskače i prelazi se na sledeću naredbu programa.
Opšti oblik If-naredbe je:
If uslov1 Then naredba 'If-blok naredbi naredba … naredba ElseIf uslov2 Then naredba 'ElseIf-blok naredbi naredba … naredba ElseIf uslov3 Then naredba 'ElseIf-blok naredbi naredba … naredba … Else naredba 'Else-blok naredbi naredba … naredba End If
Ako uslov1 ima vrednost True, tada se izvršava If-blok naredbi, ostali blokovi (ElseIf i Else) se ignorišu. U protivnom, ako uslov1 nije ispunjen (tj. ima vrednost False), naredbe If-bloka se ignorišu, a testira se uslov2. Ako je uslov2 ispunjen (True), izvršavaju se naredbe odgovarajućeg ElseIf-bloka, a ostali blokovi se ignorišu. Ako uslov2 nije ispunjen, testira se uslov3 itd.
Dakle, ako postoji neki uslov iz If ili ElseIf-bloka koji je ispunjen, izvršavaju se naredbe bloka koji odgovara prvom takvom uslovu (posmatrano odozgo nadole). Ukoliko nijedan od uslova iz If ili ElseIf-bloka nije ispunjen, izvršavaju se naredbe Else-bloka. U svakom slučaju, naredbe ostalih blokova se ignorišu.
If x > 5 Then 'izvršava se za vrednosti veće od 5 x = x - 5 Else If x > 3 Then 'izvršava se za vrednosti 4 i 5 x = x - 3 Else If x > 2 Then 'izvršava se za vrednost 3 x = x + 2 Else x = 1 'izvršava se za sve ostale celobrojne vrednosti (x <= 2) End If
U slučaju da je potrebno testirati vrednost neke promenljive i izvršiti različite akcije u slučaju različitih konkretnih vrednosti te promenljive, pogodnije je umesto If-naredbe koristiti Select Case naredbu:
Select Case TestIzraz Case SpisakSlučajeva1 naredbe Case SpisakSlučajeva2 naredbe Case SpisakSlučajeva3 naredbe … Case Else naredbe 'podrazumevana akcija End Select
Pritom:
Sledeća Select Case naredba određuje broj dana u mesecu na osnovu rednog broja meseca m (1-12) i tekuće godine g:
Select Case m Case 1, 3, 5, 7, 8, 10, 12 BrDanaUMesecu = 31 Case 4, 6, 9, 11 BrDanaUMesecu = 30 Case 2 If JePrestupna(g) Then BrDanaUMesecu = 29 Else BrDanaUMesecu = 28 End If Case Else BrDanaUMesecu = 0 'MsgBox "Nepostojeci mesec " & m End Select
Ponavljanje grupe naredbi naveden broj puta.
For brojač = početna To krajnja [Step korak] naredba 'For-blok naredbi … naredba Next
Srednje zagrade ([]) se ne pišu u naredbi, već se ovde koriste samo da bi naglasile da je deo naredbe između njih neobavezan (tj. da se ne mora navesti). Ako nije naveden korak (tj. Step korak), podrazumeva se da je njegova vrednost 1. For…Next naredba se izvršava na sledeći način:
Dakle, brojač uzima celobrojne vrednosti iz intervala početna..krajnja (pri čemu se uzastopne vrednosti brojača razlikuju za vrednost korak) i za svaku od tih vrednosti izvršava sve naredbe For-bloka. korak je vrednost za koju se brojač menja tokom svakog prolaska kroz petlju.
While uslov naredbe 'blok naredbi = telo petlje Wend
Ako je uslov True, izvršava se blok naredbi tela petlje (između While i Wend). Zatim se ponovo testira uslov i proces se ponavlja sve dok je njegova vrednost True. Ako uslov nije ispunjen (False), prelazi se na sledeću naredbu programa iza While…Wend petlje.
Ukoliko na samom početku izvršavanja naredbe uslov nije ispunjen (False), naredbe tela petlje neće nijednom biti izvršene.
Preko While-petlje mogu da se realizuju sve ostale petlje. Ona je opštija od For-petlje jer omogućava da se telo petlje ponavlja nepoznat broj puta u zavisnosti od ispunjenosti nekog uslova
Do naredbe 'blok naredbi = telo petlje Loop While uslov
Najpre se izvršava blok naredbi tela petlje (između Do i Loop). Zatim se testira uslov i proces se ponavlja sve dok je njegova vrednost True. Ako je vrednost uslova False, prelazi se na sledeću naredbu programa iza Do…While petlje.
Za razliku od While-petlje čije telo ne mora nijednom da se izvrši, telo Do…While petlje se uvek izvršava bar jednom.
Do naredbe 'blok naredbi = telo petlje Loop Until uslov
Najpre se izvršava blok naredbi tela petlje (između Do i Loop). Zatim se testira uslov (nekakav logički izraz) i proces se ponavlja sve dok uslov ima vrednost False. Ako je vrednost uslova jednaka True, prelazi se na sledeću naredbu programa iza Do…Until petlje.
Za razliku od While-petlje čije telo ne mora nijednom da se izvrši, telo Do…Until petlje se uvek izvršava bar jednom.