Obiecte de tip modul
Codificarea structurilor standard în VBA
Structura de control percizeaza ordinea de executare a instructiunilor. Un program structurat se bazeaza pe urmatoa 525b19f rele structuri de control:
structura secventiala;
structura alternativa;
structura repetitiva.
Structura secventiala se caracterizeaza prin executarea secventiala a unui set de instructiuni.
Structurile alternativa pot fi de doua tipuri:
simpla: se caracterizeaza prin executarea unui set de instructiuni sau a altuia, în functie de îndeplinirea sau neîndeplinirea unei conditii:
Daca <conditie>
<instructiuni>
altfel
<instructiuni>
Sfârsit Daca
generalizata: permite specificarea setului de instructiuni ce urmeaza a se executa, în functie de una dintre conditiile care pot fi îndeplinite:
Daca
<conditie1>
<instructiuni1>
<conditie2>
<instructiuni2>
<conditie3>
<instructiuni3>
altfel
<instructiuni>
Sfârsit Daca
Instructiunile care implementeaza structurile alternative sunt:
instructiunea If.End If:
sintaxa: if <conditie1> then <instructiuni1>
[elseif <conditie2> then
<instructiuni>]
[else
<instructiuni>]
endif
exemplu: daca variabila A are valoare true se va introduce codul clientului, altfel se va introduce codul furnizorului:
instructiunea Select Case . End Case care implementeaza structura alternativa generalizata:
sintaxa: Select Case variabila
Case exp1
<instructiuni>
Case exp2
<instructiuni>
Case exp3
<instructiuni>
Case Else
<instructiuni>
End Select
exemplu: daca variabila A are valoare true se va introduce codul clientului, altfel se va introduce codul furnizorului:
functia IIf(.).
sintaxa: Iif (expr, truepart, falsepart)
unde:
expr - este expresia ce trebuie evaluata;
truepart - consta în valoarea care se returneaza, daca expresia este adevarata;
falsepart - consta în valoarea care se returneaza, daca expresia este falsa;
exemplu: se
compara doua numere introduse de la tastatura:
Structura repetitiva se caracterizeaza prin executarea repetata a unui set de instructiuni în functie de o conditie specificata; ele pot fi:
conditionate anterior: setul de instructiuni se va executa atâta timp cât este îndeplinita conditia; exista posibilitatea ca setul de instructiuni sa nu se executa niciodata; aceasta structura repetitiva se implementeaza cu ajutorul instructiunilor:
instructiunea Do [While].Loop cu urmatoarea sintaxa:
Do [ <conditie>]
[Exit Do]
[<instructiuni>]
Exemplu: se va introduce codul clientului atâta timp cât variabila Continua are valoare "da":
instructiunea While.Wend cu urmatoarea sintaxa:
While <conditie>
[<instructiuni>]
instructiunea For .Next cu urmatoarea sintaxa:
For contor=VI To Vn [Step <pas>]
[<instructiuni>]
[<instructiuni>]
Exemplu: se va introduce codul clientului de 10 ori:
conditionate posterior: setul de instructiuni se va executa cel putin odata, iar în functie de evaluarea conditiei se va continua sau nu executarea acestuia; aceasta structura repetitiva se implementeaza cu ajutorul instructiunii Do .Loop While|Until cu urmatoarea sintaxa:
Do [<instructiuni>]
[Exit Do]
[<instructiuni>]
Loop [ <conditie>]
Exemplu: se va introduce codul clientului atâta timp cât variabila Continua are valoare "da":
Functia MsgBox ( )
Rolul ei este de a produce un "pop-up" (caseta de mesaj) în care îi este transmis un mesaj sau o informatie utilizatorului, acesta trebuind sa execute clic pe un butonul de comanda ce apare în caseta petru a continua.
Sintaxa:
RezultatMsg MsgBox ( Prompt, Style Value, Title)
unde: Prompt - este mesajul transmis;
Style Value - în functie de valorile acestui argument, în caseta de mesaj vor apare alte butoane de comanda, conform tabelului 1(putem folosi valoarea de stil sau numele constantei corespunzator cu ce butane vrem sa apara în caseta);
Title - este titlul casetei de mesaj.
Valoare de stil |
Numele constantei |
Butoane afisate |
VbOkOnly |
Butonul OK |
|
VbOkCancel |
Butonul OK si Cancel |
|
VbAbortRetryIgnore |
Butonul Abort, Retry si Ignore |
|
VbYesNoCancel |
Butonul Yes, No si Cancel |
|
VbYesNo |
Butonul Yes si No |
|
VbRetryCancel |
Butonul Retry si Cancel |
Variabila RezultatMsg pastreaza valorile returnate de functia MsgBox(). Aceste valori sunt determinate prin tipul de butoane care trebuie actionate prin executia unui clic de catre utilizator. Ele trebuie declarate ca Integer în interiorul procedurii sau în sectiunea de declaratii. În tabelul urmator sunt prezentate o parte din aceste valori, împreuna cu numele si butoanele corespunzatoare.
Valoare |
Numele constantei |
Buton |
VbOk |
Butonul OK |
|
VbCancel |
Butonul Cancel |
|
VbAbort |
Butonul Abort |
|
VbRetry |
Butonul Retry |
|
VbIgnore |
Butonul Ignore |
|
VbYes |
Butonul Yes |
|
VbNo |
Butonul No |
|