Declararea unei variabile de tip obiect se poate efectua prin declararea tipului generic Object
Dim myDoc As Object
sau specificānd exact numele de clasa dintr-o biblioteca de obiecte referita
Dim myDoc As Word.Document
Īn primul mod de definire (ca Object) nu se poate efectua la momentul co 535e47f mpilarii existenta obiectului, nu se poate verifica utilizarea corecta a proprietatilor si metodelor obiectului si nu se poate lega aceasta informatie de variabila obiect definita. Atasarea unui obiect este, īn acest caz, o legare tārzie (late binding) la momentul executiei si se efectueaza prin instructiunea Set.
Specificarea unei clase la definirea variabilei obiect produce o legare timpurie (early binding) care este mai rapida, se face la momentul compilarii si poate īnlatura mai rapid erori posibile īn utilizarea metodelor si proprietatilor obiectului.
Instructiunea Set are sintaxa:
Set objectvar =
unde
Īn general, atunci cānd se utilizeaza Set pentru a asigna o referinta de obiect la o variabila, nu se creeaza o copie a obiectului pentru acea variabila. Este creata doar o referinta la obiect. Astfel, mai multe variabile de tip obiect pot sa se refere la acelasi obiect: orice schimbare a obiectului se va reflecta īn toate variabilele care refera obiectul. Utilizānd clauza New se va crea efectiv o copie (instanta) a obiectului.
Prin urmatoarele doua instructiuni se defineste variabila objWord care este legata tārziu de o aplicatie Word:
Dim objWord As Object
Set obhWord = CreateObject("Word.Application")
Legarea timpurie se poate efectua prin
Dim objWord As Word.Application
Este de remarcat ca instructiunea Set apeleaza o functie care creeaza si returneaza o referinta la un obiect ActiveX.
|