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