Gadgetisimo » Calculatoare » Interoperabilitate VBA – 2. Binding

Interoperabilitate VBA – 2. Binding

Binding (cu sensul de legare în acest context, dar nu vom forța utilizarea acestei traduceri) se referă la modul în care definim un obiect din object-model-ul (modelul de obiecte) al unei aplicații anume.

Orice element (vizibil sau nu) dintr-o aplicație face parte, din punct de vedere al programării, dintr-o ierarhie de obiecte. Dacă vrem să facem ceva cu acel element, va trebui să-l accesăm în concordanță cu object-model.

Să luăm ca exemplu o celulă dintr-o foaie Excel. Ea este un obiect dintr-un obiect mai mare (foaia Excel).

Worksheets("Evidenta lunara").Cells(5, 3).Font.Size = 14

Care se traduce astfel: celulei de pe rîndul 5, coloana 3, din foaia cu numele Evidenta lunara i se modifică mărimea fontului la 14.

marime_font = Worksheets("Evidenta anuala").Cells(10, 11).Font.Size

Care se traduce astfel: variabilei marime_font i se atribuie ca valoare marimea fontului celulei de pe rîndul 10, coloana 11, din foaia cu numele Evidenta anuala.

Ca să putem face ceva cu aceste obiecte, e necesar ca VBA sa stie de existenta object-model specific aplicației dorite. Când lucrăm în Excel VBA, sunt cunoscute obiectele din Excel. De ce? Pentru că este bifată referința la biblioteca de obiecte Excel. Referința la biblioteca de obiecte a unei aplicații este întotdeauna bifată implicit atunci când lucrăm în acea aplicație.

Interoperabilitate VBA – 2. Binding

Ca să putem automatiza Outlook lucrând în Excel, vom fi nevoiți ca în Excel VBA să avem bifată și referința la biblioteca de obiecte Outlook. Adică VBA-ul Excel-ului să știe care sunt obiectele din Outlook.

Pentru asta derulăm în fereastra References (pe care o deschidem din meniul Tools al IDE – mediul de programare VBA) până găsim Microsoft Outlook xx.x Object Library și o bifăm. xx.x este versiunea de bibliotecă. Trebuie să alegeți aceeași versiune ca a bibliotecii aplicației în care lucrați. Dacă la Excel avem versiunea 16.0, tot versiunea 16.0 alegem și la Outlook. Iar dacă avem nevoie să controlăm și Word-ul, alegem și biblioteca pentru Word, bineînțeles tot versiunea 16.0.

Interoperabilitate VBA – 2. Binding

Tocmați ați făcut posibil early binding (legarea timpurie). Acum veți putea scrie cod în Excel prin care să controlați Outlook. Mai jos un cod simplu, prin care instruiesc Outlook să creeze un mesaj email, cu adresa de destinație, subiectul și mesajul gata completate și să afișeze fereastra cu mesajul. Dacă înlocuim .Display cu .Send, mesajul se va trimite automat la prima sincronizare a aplicației Outlook.

Mai există late binding, dar nu vom intra în amănunte. Ambele au avantaje și dezavantaje. De exemplu early binding aduce performanță mai mare, în timp ce late binding aduce flexibilitate mai mare.

După ce ați făcut asta, puteți bea o cafea. O meritați.

Interoperabilitate VBA - 1. Generalități

Până data viitoare,

Happy Coding!


Surse: Pexels, Pexels


Back To Top