sâmbătă, 27 iulie 2013

Obiecte, proprietăţi, metode, evenimente



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.
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:


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….

 


Niciun comentariu:

Trimiteți un comentariu