Obiecte
Aproape toate acţiunile programate în
VBA implică manevrarea programatică a unor obiecte. Aplicaţiile din Microsoft
Office sunt alcătuite din componente formate din obiecte sau care gestionează
obiecte.
Visual Basic suporta un set de obiecte
care corespund direct elementelor din Microsoft Excel, cele mai multe identificabile
după denumirea uzuala din mediul Excel. Astfel, obiectul Workbook reprezintă un caiet, obiectul Worksheet reprezintă o foaie de calcul iar obiectul Range reprezintă un domeniu de celule
dintr-o foaie de calcul. Fiecare element din Microsoft Excel – caiet, foaie,
diagrama, celula etc. – poate fi reprezentat printr-un obiect în Visual Basic.
Prin scrierea unor proceduri, care controlează aceste obiecte, se pot automatiza
operaţiile efectuate în Excel.
Exemple de alte obiecte Excel sau VBA sunt:
butoanele de comandă, casetă derulantă, celula, rândul, coloana, etc.
Obiectele VBA sunt identificate
printr-un nume şi se pot caracteriza cu ajutorul a trei elemente : proprietăţi,
metode şi evenimente.
Obiectele unei aplicaţii sunt
ierarhizate în structuri, modelul de obiecte al aplicaţiei.
Obiectul de nivel maxim al unei aplicaţii
este, uzual, obiectul Application,
care este aplicaţia însăşi. Obiectul Application
conţine alte obiecte care pot fi accesate numai când obiectul Application exista (când aplicaţia se executa).
De exemplu, obiectul Application
Excel conţine obiecte Workbook.
Deoarece obiectul Workbook depinde
de existenta obiectului Application,
se spune ca obiectul Workbook este copilul obiectului Application; invers, obiectul Application
se zice părintele obiectului Workbook.
Obiectul este accesibil prin
intermediul proprietarilor si metodelor sale.
Proprietăţi
În general, prin proprietate se înţelege
o caracteristică al obiectului. Valoarea atributului (proprietăţii) poate fi modificată
(de cele mai multe ori) sau poate fi obţinuta (ştiută) programatic.
Principalele proprietăţi:
BackColor, Color,ColorIndex
|
indică culoarea obiectului
|
Caption, Text
|
textul care este afişat pe obiect ; String
|
Enabled
|
indică dacă obiectul este activ sau nu ;
Boolean
|
Font
|
tipul fontului folosit pentru scrierea
textului de pe obiect
|
ForeColor
|
culoarea fontului pentru scrierea textului
|
Height
|
înălţimea obiectului ; Single.
|
Left
|
coordonata (de pe axa X) a colţului stânga
sus a obiectului; Single
|
Top
|
coordonata (de pe axa Y) a colţului stânga
sus a obiectului; Single
|
Width
|
lungimea obiectului; Single.
|
Visible
|
indică dacă obiectul este vizibil sau nu şi
este de tipul Boolean
|
Pe lângă aceste proprietăţi generale fiecare obiect
poate avea o serie de proprietăţi specifice.
Aceste proprietăţi pot fi modificate,
prin program conform sintaxei :
numeObiect.numeProprietate = Valoare
Workbook("Activitate.xls").Worksheets("Vanzari").Range("A5").Value
= 100
În editorul VBA prin Properties Pane
putem specifica proprietăţile:
Colecţii de obiecte
O colecţie
este un obiect care include obiecte similare, astfel încât se poate opera cu
ansamblul lor. Acest lucru nu înseamnă ca metodele sau proprietăţile obiectelor
se aplica tuturor elementelor colecţiei.
Ca obiect separat, o colecţie are proprietăţi si metode specifice (de ex. numărul
de elemente, adăugarea unui nou element etc.).
De regula, colecţiile definite în Office se remarcă prin aceea ca au forma de plural a denumirii elementelor lor: Workbooks, Sheets, Charts, Dialogs.
De regula, colecţiile definite în Office se remarcă prin aceea ca au forma de plural a denumirii elementelor lor: Workbooks, Sheets, Charts, Dialogs.
Elementele colecţiei se pot identifica
prin numărul de ordine (începând cu 1) sau prin nume .
Astfel instrucţiunea: Sheets(2).Select
- selectează al doilea sheet din stânga,
iar Sheets(“nume”).Activate – activează foia de calcul nume.
Numărul de elemente ale colecţiei se
pot afla prin proprietatea Count, se
pot adăuga noi elemente prin metoda Add.
O utilizare frecventa a colectiilor
este parcurgerea tuturor elementelor într-o structura For Each…Next sau For…Next:
In acest exemplu toate etichetele din pagina
activă o să afişeze un text.
Dacă scriem un cuvânt cheie în
editorul VBA şi înserăm un punct va apare o casetă derulantă cu proprietăţile
obiectului (figura care sugerează o mână pe o foaie)şi cu metodele ce i se pot
aplica (cutia verde)
Metode
Prin metoda se înţelege o procedură
care acţionează asupra unui obiect. Pentru a distinge o metodă de o procedură obişnuită
(care poate de asemenea să acţioneze asupra unui obiect, în general vorbind),
trebuie precizat ca metodele implementează funcţionalitatea obiectului, sunt
specifice obiectului căruia i se aplică şi sunt definite o dată cu obiectul.
Orice procedură utilizator acţionează asupra obiectului prin intermediul
metodelor specifice acelui obiect.
Metodele obiectelor pot fi doar
apelate nu şi modificate.
Câteva metode:
Sheets(1).Activate activare foaie de calcul
sau:
Sheets(1).Activate activare foaie de calcul
sau:
Unde folosim cu metoda Copy pentru a copia o zonă (Range) în alta.
Evenimente
Sunt proceduri care pot să aibă un
număr diferit de parametri şi reprezintă reacţia obiectului la diferite acţiuni
ale utilizatorului; procedurile se apelează automat la o acţiune a
utilizatorului asupra unui obiect.
O bună parte din codul scris într-o aplicaţie
este dat de proceduri de răspuns la evenimente. Cunoaşterea evenimentelor şi
alegerea unor răspunsuri adecvate produc o aplicaţie senzitiva, vie, care interacţionează
cu utilizatorul.
În Microsoft Excel se pot scrie
proceduri eveniment la nivelurile: worksheet,
chart, workbook si application.
În plus fata de versiuni anterioare, sunt posibile si proceduri eveniment cu
argumente.
Procedurile de răspuns la evenimente
la nivelurile Worksheet si Workbook sunt create în mod implicit
pentru orice foaie de calcul, foaie de diagrama sau caiet. Pentru a scrie
proceduri de raspuns la evenimentele de la nivelul Chart sau pentru Application,
trebuie sa se creeze un nou obiect utilizând cuvântul cheie WithEvents într-un modul clasa.
Implicit toate evenimentele sunt
permise. Dar prin proprietatea EnableEvents,
a obiectului Application, evenimentele pot să fie permise sau inhibate.
Activate
|
activarea unui obiect
|
Click
|
click al butonului din stânga al mouse-lui
pe obiect
|
DoubleClick
|
dubluclick pe obiect
|
MouseDown
|
butonul stâng/drept al mouse-ului este
apăsat, iar cursorul se află pe obiect
|
MouseMove
|
mouse-ul este mişcat pe obiect.
|
MouseUp
|
butonul stâng/drept al mouse-ului nu mai
este apăsat iar cursorul se află pe
obiect .
|
Pentru fiecare obiect există
evenimente specifice:
ex. pentru Sheet – SelectionChange, Calculate, Deactivate……
pentru Chart – DragOver, DragPlot, SeriesChanges….
pentru Workbook – BeforeClose, BeforeSave, SheetChange…..
pentru Application - SheetActivate, SheetChange, WorkbookOpen….
ex. pentru Sheet – SelectionChange, Calculate, Deactivate……
pentru Chart – DragOver, DragPlot, SeriesChanges….
pentru Workbook – BeforeClose, BeforeSave, SheetChange…..
pentru Application - SheetActivate, SheetChange, WorkbookOpen….
Niciun comentariu:
Trimiteți un comentariu