Sunteți pe pagina 1din 14

INSTRUCTIUNI DE BAZA IN VISUAL BASIC

Instructiunea FOR / NEXT-repeta un ciclu de operatii care depind de un indice exprimabil printr-un numar intreg sintaxa este: FOR Indice = StartValue TO StopValue STEP PasIndice {Bloc de Instructiuni} NEXT Indice In aceasta secventa de instructiuni Indice, StartValue, StopValue si PasIndice sunt numere intregi (sau variabile care iau valori numere intregi). Ciclul FOR / NEXT poate fi executat in ordinea crescatoare a indicelui (in acest caz StartValue < StopValue si PasIndice>0) sau in ordine descrecatoare (StartValue>StopValue si PasIndice < 0). Tradusa in limbaj comun secventa de instructiuni precedenta poate fi exprimata sub forma: Pentru (FOR) valori ale Indicelui incepind cu StartValue pina la StopValue executa pe rind Blocul de instructiuni. Indicele variaza la fiecare repetare a executiei blocului cu valoarea PasIndice. In executarea secventei de instructiuni, programul atribuie parametrului Indice valoarea StartValue. Se executa Blocul de Instructiuni, dupa care valoare parametrului Indice este crescuta cu PasIndice. Daca noua valoare este mai mare decit StopValue atunci se iese din ciclu. Daca nu ciclul se reia cu noua valoare pentru Indice, s.a.m.d. pina la iesirea din ciclu.

vom exemplifica secventa de instructiuni FOR / NEXT prin evaluarea mediei a n valori stocate in vectorul X(i), I=1,n: Suma = 0 For I = 1 TO n Suma = Suma + X(i) Next I Medie = Suma / n INSTRUCTIUNEA WHILE / WEND Secventa de instructiuni While / Wend, avind sintaxa: While Conditie {Bloc de Instructiuni} Wend unde Conditie este o expresie a carei evaluare conduce la o valoare logica de tip Adevarat sau Fals Daca rezultatul evaluarii expresiei inclusa in Conditie este adevarat, atunci se executa Blocul de instructiuni. Daca rezultatul evaluarii expresiei inclusa in Conditie este fals se iese din ciclu

INSTRUCTIUNEA DO / LOOP Secventa de instructiuni DO / LOOP avind una din sintaxele urmatoare: DO WHILE Conditie {Bloc de Instructiuni} LOOP Sau DO UNTIL Conditie {Bloc de Instructiuni} LOOP Executa {Bloc de Instructiuni} atita timp cit (WHILE) sau pina cind (UNTIL) expresia din Conditie este Adevarata

INSTRUCTIUNEA Select Case Structura Select Case este o altemativa la If. . . Then. . .Else pentru executarea selectiva a unui bloc de instructiuni din mai multe blocuri de instructiuni. Exemplu: Select Case Case 0 Msg = "Nul" Case 1 Msg = "Impar" Case 2 Msg = "Par" Case Else Msg = "Out of range" End Select

Selectarea sheet-ului si celulelor utilizind instructiunea Select. Selectarea unui sheet se face sub forma: Sheets(VariabilaText).Select Aceasta instructiune poate fi tradusa in limbaj obisnuit prin expresia: Din clasa de obiecte Sheets se selectioneaza sheet-ul al carui nume este VariabilaText. Sheet-ul selectionat devine activ in cadrul aplicatiei. Spre exemplu activarea Sheet-ului Input se poate face sub una din formele: A$ = Input Sheets(A$).Select Sau Sheets(Input).Select Selectarea unei celule sau grup de celule se face aplicind operatia Select asupra clasei de obiecte Range actualizata pentru domeniul dorit: Range(VariabilaText).Select

CITIREA SI SCRIEREA DATELOR IN SHEET-uri Specificarea numelui sheet-ului din care sau in care se face citirea/scrierea datelor prin utilizarea comenzii: With, urmata de denumirea acesteia si de End With
With Sheets(Date) End With

Citirea datelor dintr-un sheet -reprezinta alocarea continutului unei celule din sheet unei variabile din interiorul programului (aplicatiei VBA). instructiunea : X = .Cells(1,1).Value transfera continutul din celula A1 variabilei X Forma generala a instructiunii este: NumeVariabila = .Cells(Rind, Coloana).Value NumeVariabila este numele dat variabilei in cadrul subrutinei respective (X, Y, etc.) Rind este un numar sau variabila numerica care reprezinta rindul celulei care se citeste. Spre exemplu pentru celula A1 rindul este 1, pentru celula C5 rindul este 5. Coloana este un numar sau variabila numerica reprezinta numarul de ordine al coloanei celulei

Transferarea datelor intr-un sheet continutului variabilei Y se scrie in celula B3 prin instructiunea: .Cells(3,2).Value = Y Forma generala a instructiunii este: .Cells(Rind, Coloana).Value = NumeVariabila se atribuie ceea ce se afla in dreapta semnului = (valoarea stocata in NumeVariabila) la ceea ce se afla in stinga (continutul celulei specificate) Exemplul 1. With Sheets(Date) X = .Cells(1,1).Value Y = .Cells(4,2).Value End With Se atribuie continutului celulei A1 din Sheet-ul Date variabilei X si continutului celulei B4 variabilei Y With Sheets(foaie1) .Cells(1,1).Value = X .Cells(4,2).Value = Y End With scrierea valorii variabilelor X si Y in celulele A1 si B4 din Sheet-ul foaie1

Exemplul 2. Atribuirea continutului mai multor celule organizate in coloana unei variabile de tip vector denumita masuratori Dim masuratori(19) With Sheets(Date) For i = 1 TO 19 masuratori(i) = .Cells(i+1 , 2).Value Next i End With In acest exemplu se remarca utilizarea instructiunii de ciclare For: variabila I ia valori intre 1 si 19. Pentru fiecare valoare I se atribuie variabilei masuratori(i) continutul celulei avind rindul i+1 (+1 deoarece rindul 1 este destinat capului de tabel) si coloana 1 (A).

Exemplul 3. Atribuirea continutului mai multor celule organizate in mai multe rinduri si coloane unei variabile de tip matrice denumita X Dim X(19,3) With Sheets(Date) For I = 1 TO 19 For J = 1 TO 3 X(I , J) = .Cells(I+1, J).Value Next J Next I End With

Atribuirea continutului mai multor celule organizate in coloana unei variabile de tip vector . Spre deosebire de Exemplu 2 nu se cunoaste numarul de elemente din coloana care urmeaza a fi citita. In acest caz citirea se va face crescind numarul de ordine al rindului citit (i1) atita timp cit (While) continutul celulei corespunzatoare nu este nul (continutul nul este similar cu variabila text nula: ) With Sheets("Date") i1 = 1 While .Cells(i1+1, 1) <> "" X(i1) = .Cells(i1+1, 1).Value i1 = i1 + 1 Wend n = i1 - 1 End With

Acelasi algoritm se poate scrie utilizind secventa de instructiuni DO WHILE / LOOP sub forma: With Sheets(Date") i1 = 1 Do While .Cells(i1+1, 1) <> "" X(i1) = .Cells(i1+1, 1).Value i1 = i1 + 1 Loop n = i1 - 1 End With

Range(A1).Offset(1, 2) Range(C2).Offset(-1, -2) Range(A1).Offset(0, 0) MsgBox Worksheets(Sheet1).Range(A1).Value Worksheets(Sheet1).Range(A1:C3).Value = 123 Range(A13).Formula = =SUM(A1:A12) Range(A1:J10).Value = 99 Range(Cells(1, 1), Cells(10, 10)).Value = 99