Proprietăți și metode
Este ușor să vă confundați în proprietăți și metode: există câteva mii dintre ele. Această secțiune vă arată cum să accesați proprietățile și metodele obiectului.
Proprietăți obiect
Toate obiectele au proprietăți. De exemplu, un obiect Range are o proprietate denumită Value. Puteți crea o declarație VBA. Pentru a afișa proprietatea Valoare sau pentru a seta proprietatea Valoare la o anumită valoare. Mai jos este o procedură care utilizează funcția VBA MsgBox pentru a afișa o fereastră în care este reprezentată valoarea celulei A1 a foii de lucru Sheet1 a unui registru de lucru activ.
Codul din exemplul precedent afișează valoarea curentă a proprietății Valoare pentru o anumită celulă - A1 a foii de lucru Sheet1 din registrul de lucru activ. Rețineți că dacă nu există o foaie numită Sheet1 în registrul de lucru activ, macro-ul va genera o eroare.
MsgBox este o funcție utilă, adesea folosită pentru a afișa rezultatele executării instrucțiunilor VBA. În această carte, este folosit foarte des.
Ce trebuie să faceți pentru a modifica proprietatea Valoare. Mai jos este procedura de modificare a valorii celulei A1 prin determinarea valorii proprietății Valoare.
După efectuarea acestei proceduri, celula Al din Sheet1 primește valoarea 123. Puteți introduce procedurile descrise în modul și le puteți testa.
Multe obiecte au o proprietate implicită. Pentru un obiect Range, proprietatea lui
valoarea implicită este Valoare. Prin urmare,
în codul de mai sus poate fi omis, și nimic nu se va schimba. Cu toate acestea, este mai bine să includeți o referință la o proprietate, chiar dacă aceasta este utilizată în mod implicit.
Metode de obiecte
Pe lângă proprietăți, obiectele se caracterizează prin metode. O metodă este o acțiune care este efectuată pe un obiect. Mai jos este un exemplu simplu de utilizare a metodei clare în ceea ce privește o gamă de celule. După efectuarea acestei proceduri, celulele A1: C3 din Sheet1 devin goale și se va șterge formatarea suplimentară a celulelor.
Dacă doriți să ștergeți valorile din interval, dar lăsați formatarea, utilizați metoda ClearContents a obiectului Range.
Foi de lucru ("foaia 1") .Range ("B1")
Definirea argumentelor metodei și proprietății
În mediul programatorilor VBA, definirea argumentelor metodelor și proprietăților cauzează adesea anumite dificultăți. Unele metode folosesc argumente pentru a rafina acțiunea; proprietățile individuale utilizează argumente pentru a defini în continuare valoarea proprietății. Uneori, unul sau mai multe argumente nu trebuie să fie aplicate deloc.
Dacă metoda utilizează argumente, acestea sunt specificate după numele metodei și separate prin virgule. Dacă metoda utilizează argumente opționale, le puteți ignora, lăsând spații goale. Să luăm în considerare metoda de protecție a obiectului din registrul de lucru. Sistemul de ajutor oferă informații că metoda Protect are trei argumente: parola, structura, ferestrele. Aceste argumente corespund parametrilor din caseta de dialog Protecția cărților.
De exemplu, dacă doriți să protejați un registru de lucru numit MyBook. xls. utilizați această declarație:
Registrele de lucru ("MyBook.xls") Protejați "xyzzy", True, False
În acest caz, registrul de lucru este protejat prin parolă (argumentul 1). Structura din registrul de lucru (argumentul 2) este, de asemenea, protejată, dar nu ferestrele sale (argumentul 3).
Dacă nu doriți să atribuiți o parolă, puteți utiliza acest operator:
Registrele de lucru ("MyBook.xls"). Adevărat, Fals
Rețineți că primul argument este omis și locul său este indicat cu virgulă.
Carti de lucru ("MyBook.xls") Protect Structure: = True, _
Folosirea argumentelor numite este o idee bună, mai ales în metodele cu multe argumente opționale, când numai câteva dintre ele ar trebui utilizate. Dacă folosiți argumente numite, nu trebuie să lăsați spațiu pentru argumentele care lipsesc.
Pentru proprietățile care folosesc argumente, argumentele sunt specificate în paranteze. De exemplu, proprietatea Address a obiectului Range are cinci argumente, toate opționale. Operatorul afișat mai jos este nevalid, deoarece parantezele sunt omise:
Gama MsgBox ("Al") Adresa False "nu este validă
Sintaxa corectă pentru această instrucțiune este:
MsgBox Range ("Al") Adresa (Fals)
În plus, un operator poate fi scris folosind un argument numit.
Gama MsgBox ("Al") Adresa (rowAbsolute: = False)
O astfel de subtilitate a aplicării metodelor și a proprietăților va deveni în curând un obicei pentru voi, nu vă veți întreba nici măcar de ce este așa.