Sunteți pe pagina 1din 6

Curs de Programare 1 - Programarea aplicaiilor Microsoft Office (Visual Basic for

Applications)
Introducere
VBA (Visual Basic for Applications) este un limbaj de programare creat de
Microsoft pentru automatizarea aplicaiilor. Ataat iniial componentelor din
Microsoft Office, n prezent sunt raportate peste 200 de aplicaii care include VBA
(CorelDraw, AutoCAD etc.).VBA este parte a familiei de limbaje Visual Basic,
situndu-se sub VB, dar peste VBScript. Totui, VBA este acum un element
esenial n versiunea complet VB, oferind suport pentru limbaj, interfaa pentru
forme, controale, obiecte, tehnologii de accesare a datelor. Atunci cnd este
gzduit de alt aplicaie, cum ar fi Excel, VBA ofer mijloacele de interaciune cu
obiectele aplicaiei gazd. In acest caz, VBA permite dezvoltatorilor s furnizeze
soluii complete care extind i/sau integreaz aplicaiile gazd. Pentru a
programa n VBA trebuie totui reinut c o cerin suplimentar fa de alte
limbaje este aceea c trebuie s se cunoasc aplicaia gazd (Word, Excel,
PowerPoint, Access etc.).
Tipurile de controale disponibile in VBA sunt prezentate in tabelul urmator:
Tipuri de controale VBA
Nr.
Tip de control
crt.
1.
Etichete control
2.
Caset text control
3.
CommandButton control
4.
Caset list control
5.
caset combo control
6.
Cadru control
7.
OptionButton control
8.
caset de selectare control
9.
ToggleButton control
10.
TabStrip control
11.
MultiPage control
12.
Bar de defilare control
13.
SpinButton control
14.
RefEdit control
15.
Imagine control
1. Scurt istoric
1993 VBA apare n Microsoft Excel
1994 VBA este ataat la Microsoft Project
1995 este inclus n Microsoft Access, nlocuind Access Basic
1996 VBA devine element n Visual Basic
1996 este inclus n Word, nlocuind Word Basic
1997VBA este integrat n suita Office 97
1997 Microsoft liceniaz VBA pentru utilizarea n alte aplicaii software
2. Tipuri de controale
2.1. Controalele caset text

Controalele caset text sunt utilizate frecvent pentru a aduna de intrare de la un


utilizator. Proprietatea Text conine intrarea efectuate ntr-un control caset text .
Cum se utilizeaz un control caset text pentru a valida o parol
Dac ai setat proprietatea PasswordChar unui control caset text , acesta va fi
un control "editare mascate". Fiecare caracter care este tastat n caseta de text
de control este nlocuit vizual de caractere specificat. Pentru a utiliza un control
caset text pentru a valida o parol, urmai aceti pai:
Pornii Excel i apoi deschidei un registru de lucru nou necompletat.
n meniul Instrumente , indicai spremacrocomenzii apoi facei clic pe
BasicEditor vizuale.
n meniul Inserare , facei clic peUserForm pentru a insera o UserForm n registrul
de lucru.
Adugarea unui control caset text la UserForm.
n meniul vizualizare Proiect , facei clic peProprieti pentru a face vizibil
fereastra proprieti.
n proprietatea PasswordChar a controlului caset text , tastai *.
Adugai un control CommandButton UserForm.
Facei dublu clic pe CommandButton control toopen fereastra de cod pentru
UserForm.
n fereastra de cod, tastai urmtorul cod pentru Evenimentul CommandButton1
Click :

Exemplu control Caseta text


n meniul de executare , facei clic pe RunSub/UserForm.
Tastai parola Userform n caseta de text de control.
Facei clic pe controlul CommandButton.
Pentru acest exemplu, parola este "userform". Dac tastai o parol incorect,
vei primi o caset de mesaj care afirm c parola este incorect, controlul caset
text este eliminat i apoi posibilitatea s reintroducei parola. Cnd tastai o
parol corect, primii un mesaj de ntmpinare, i UserForm se nchide.
2.2. Controale de tip CommandButton
Utilizai un control CommandButton pentru a porni o procedur VBA. Evenimentul
Click pentru controlul CommandButton de obicei ataat procedura VBA. Pentru a
utiliza un control CommandButton care se execut o procedur cnd facei clic pe
evenimentul apare, urmai aceti pai:
Pornii Excel i apoi deschidei un registru de lucru nou necompletat.
n meniul Instrumente , indicai spremacrocomenzii apoi facei clic pe
BasicEditor vizuale.

n meniul Inserare , facei clic peUserForm pentru a insera o UserForm n registrul


de lucru.
Adugai un control CommandButton UserForm.
Facei dublu clic pe CommandButton control todisplay fereastra de cod pentru
UserForm.
n fereastra de cod, introducei codul urmtor:

Exemplu de control CommandButton


n meniul de executare , facei clic pe RunSub/UserForm.
Culoarea de fundal pentru controlul CommandButton1 schimb mereu c se face
clic.
2.3. Control caset list
Scopul controlului caset list este s prezinte utilizatorul cu o list de articole
pentru a selecta din. Avei posibilitatea s stocai List tabel element pentru o
list de control pe o foaie de lucru Excel. Pentru a popula un control caset list
cu un interval de celule pe o foaie de lucru, utilizai proprietatea Surs rnduri .
Atunci cnd utilizai proprietatea MultiSelect , posibilitatea s configurai o list
de control pentru a accepta selecii multiple.
Cum se obin elementului selectat din list de control
Utilizai proprietatea valoare unui control caset list pentru a returna elementul
selectat. Pentru a returna elementul selectat ntr-un singur Selectai control
caset list , urmai aceti pai:
Pornii Excel i apoi deschidei un registru de lucru nou necompletat.
n celulele a1: A5 pe Foaie1, introducei valorile c dorii alternative pentru a
popula controlul caset list .
n meniul Instrumente , indicai spremacrocomenzii apoi facei clic pe
BasicEditor vizuale.
n meniul Inserare , facei clic peUserForm pentru a insera o UserForm n registrul
de lucru.
Adugarea unui control caset list la UserForm.
Facei dublu clic pe caset list control todisplay fereastra de cod pentru controlul
caset list .
n fereastra de cod, tastai urmtorul cod pentru Evenimentul Click Casetlist1 :

Exemplu de control caset list


n meniul de executare , facei clic pe RunSub/UserForm.

Cnd facei clic pe un element din list, apare o caset de mesaj cu elementul
selectat.
2.4 Control imagine
Scopul controlului de imagine este pentru a afia o imagine pe un UserForm.
Pentru a atribui o fotografie la un control de imagine de la momentul execuiei,
utilizai funcia LoadPicture .
Cum s ncrcai o imagine ntr-un control de imagine
Pentru a insera un control imagine care v solicit s selectai o imagine pentru a
se ncarc atunci cnd facei clic pe controlul de imagine , urmai aceti pai:
Pornii Excel i apoi deschidei un registru de lucru nou necompletat.
n meniul Instrumente , indicai spremacrocomenzii apoi facei clic pe
BasicEditor vizuale.
n meniul Inserare , facei clic peUserForm pentru a insera o UserForm n registrul
de lucru.
Adugai un control imagine pe UserForm.
Facei dublu clic pe controlul de imagine pentru a deschide fereastra theCode
pentru controlul imagine .
n fereastra de cod, tastai urmtorul cod pentru Evenimentul Image1 Click :

Exemplu de control Imagine


In meniul de executare , facei clic pe RunSub/UserForm.
UserForm apare.
Facei clic pe controlul de imagine .
Facei clic pe controlul de imagine , Selectai imaginea la deschidere boxappears
de dialog, i apoi, avei posibilitatea s selectai un fiier bitmap pentru a
introduce n thecontrol.
3. Structuri de control
3.1. Structuri iterative
Prin intermediul construciilor de tip bloc prezentate n aceast seciune se poate
repeta, n mod controlat, un grup de instruciuni. n cazul unui numr nedefinit de
repetiii, condiia de oprire poate fi testat la nceputul sau la sfritul unui ciclu,
prin alegerea structurii adecvate.

Nr.crt.
1.
2.
3.
4.
5.

Structuri iterative
Structuri iterative
Do...Loop
For...Next
For Each...Next
While...Wend
With

DoLoop
Se vor utiliza structuri DoLoop pentru a executa un grup de instruciuni de un
numr de ori nedefinit aprioric. Dac se cunoate numrul de cicluri, se va utiliza
structura ForNext.
Execuia structurilor Do Loop este explicat n tabelul urmtor

Do While
Loop
Do Until
Loop
DoLoop
While
DoLoop
Until

Explicatia structurilor Do Loop


Testeaz condiia la nceputul buclei, execut bucla numai
dac rezultatul este True i continu astfel pn cnd o
nou evaluare produce False.
Testeaz condiia la nceputul buclei, execut bucla numai
dac rezultatul este False i continu astfel pn cnd o
nou evaluare produce True.
Se execut ntotdeauna bucla o dat, se testeaz condiia la
sfritul buclei i se repet bucla att timp ct condiia este
True. Oprirea este pe condiie fals
Se execut ntotdeauna bucla o dat, se testeaz condiia la
sfritul buclei i se repet bucla att timp ct condiia este
False. Oprirea este pe condiie adevrat.

ForNext
Atunci cnd se cunoate numrul de repetri ale unui bloc de instruciuni, se va
folosi structura ForNext. Structura utilizeaz o variabil contor, a crei valoare
se modific la fiecare ciclu, oprirea fiind atunci cnd se atinge o valoare
specificat.
For EachNext
Similar structurii ForNext, structura For EachNext repet un grup de
instruciuni pentru fiecare element dintr-o colecie de obiecte sau dintr-un tablou
(cu excepia celor de un tip utilizator). Este util atunci cnd nu se cunoate
numrul de elemente sau dac se modific, n timpul execuiei, coninutul
coleciei.
WhileWend
Execut un grup de instruciuni att timp ct este adevrat o condiie.
With
Programarea orientat pe obiecte produce, datorit calificrilor succesive,
construcii foarte complexe atunci cnd se numesc proprietile unui obiect. n
cazul modificrilor succesive ale mai multor proprieti ale aceluiai obiect,
repetarea zonei de calificare poate produce erori de scriere i conduce la un text
greu de citit. Codul este simplificat prin utilizarea structurii WithEnd With. O
asemenea structur execut o serie de instruciuni pentru un obiect sau pentru o
variabil de tip utilizator.

3.2. Structuri de decizie (IfThenElse, Select Case)


Ramificarea firului execuiei dup rezultatul verificrii unei condiii este o
necesitate frecvent n orice implementare. Pe lng structurile prezentate, se
pot utiliza trei funcii care realizeaz alegeri n mod liniarizat (pe o linie de cod):
Choose(), Iif(), Switch().
IfThenElse
O asemenea structur, ntlnit de altfel n toate limbajele de programare,
execut un grup de instruciuni ca rspuns la ndeplinirea unei condiii (compus
sau nu din mai multe condiii testate secvenial). Sintaxa permite o mare
varietate de forme.
Select Case
Instruciunea Select Case se poate utiliza n locul unor instruciuni ElseIf multiple
(dintr-o structur IfThenElseIf) atunci cnd se compar aceeai expresie cu
mai multe valori, diferite ntre ele. Instruciunea Select Case furnizeaz, prin
urmare, un sistem de luare a deciziilor similar instruciunii IfThenElseIf. Totui,
Select Case produce un un cod mai eficient i mai inteligibil.

Bibliografie
Jamsa, K. ,Klander L. Totul despre C si C++, Editura Teora, 2010
Schildt H. C, C++ Manual Complet, Editura Teora, 2010
Stroustrap, B., C++, Editura Teora, 2013
Kernighan, B., Ritchie, D. ,Limbajul C, Editura Teora
Cristea V., Atanasiu I., E. Kalisz, V. Iorga , Tehnici de programare , Editura Teora
1999
Dragomirescu C., Satnoianu L., Mirela Popa Informatica Fise de lucru pentru
elevi , clasa a XI-a , Ed. Donaris , Sibiu , 2012
Ionic I., Iordan V., Metode de elaborare a algoritmilor, Ed. Eubeea , Timioara,
2012
Iordan V., Algoritm i programare n C, Ed. Eurostampa , Timioara, 2007
Ivac C., Mona Prun , Tehnici de programare Aplicaii , Editura Petrion 1998
Lica D., colectiv , Fundamentele programrii , Editura L&S , Bucureti , 2011
Mateescu G., Pavel F. Moraru Informatic - varianta Pascal, Ed. Niculescu ,
Bucuresti
2011
Oprescu D., L.B. Ienulescu , V. Ptracu , Informatic , manual pentru clasa a XIa , Editura Niculescu , Bucureti , 2011
Prejmerean V., Algoritmic i programare, Litografia Universitii Babe-Bolyai
Cluj Napoca ,1999

S-ar putea să vă placă și