Instructiunile unui proiect se pot înscrie, dupa modul lor de creare, în doua mari categorii:
Actiunea este utila atât prin aceea ca operatiuni simple pot fi traduse usor în instructiuni VBA, procedurile pot fi editate din VBE, iar pentru proceduri mai complexe (cum ar fi operatiuni de cautare/înlocuire sau formatari de obiecte grafice) codul generat automat ofera un bun model de utilizare a obiectelor, proprietatilor si metodelor aplicatiei.
Pentru a înregistra un macro:
Se poate utiliza boxa Store macro pentru a alege locul de memorare a codului.
Pentru a vedea liniile de cod generate, se deschide în aplicatia de baza meniul Tools, comanda Macro, apoi Macros, se selecteaza dupa denumire si se apasa butonul Edit.
Codul sursa poate fi vazut si prin navigarea în VBE prin Project Explorer, ferestre de cod etc.
Din punctul de vedere al programarii se poate spune ca un macro este o procedura publica fara argumente, deci poate fi scrisa si direct în fereastra de cod a unui document. Din punct de vedere formal, toate procedurile care pot fi executate din dialogul Macros (Tools - Macro - Macros) sunt macro-uri.
Daca se doreste scrierea unor proceduri generale, care nu sunt asociate unui obiect sau eveniment specific, se ca crea o procedura într-un modul standard.
Pentru a crea un modul standard nou (gol), se merge în Project Explorer în proiectul unde se adauga modulul nou creat si se da comanda Module din meniul Insert.
Pentru a deschide un modul standard existent, se va selecta modulul din Project Explorer si se apasa butonul View Code (sau dublu click).
Pentru a adauga o procedura la un modul, se selecteaza modulul în Project Explorer, se deschide meniul Insert si se da comanda Procedure. Se deschide dialogul Add Procedure unde se vor selecta optiunile definitorii (subrutina sau functie, publica sau nu etc.) si se da OK. Dupa aceasta se pot adauga liniile de cod ale procedurii.
Daca se doreste scrierea de cod sursa care sa se execute automat atunci când are loc un anumit eveniment (cum ar fi deschiderea unui document, actionarea unui buton etc.), trebuie sa se scrie o procedura asociata evenimentului respectiv. O asemenea procedura se va numi procedura evenimentului.
Anumite obiecte din aplicatiile Microsoft Office recunosc un set predefinit de evenimente, care pot fi declansate de catre sistem sau de catre utilizator. Evenimentele specifice fiecarui obiect trebuie sa fie studiate separat (se va studia sectiunea din Help pentru fiecare aplicatie), doa principalele obiecte, cu proprietatile, metodele si evenimentele lor, sunt prezentate si în acest curs, în capitole separate.
Modul cum aplicatia raspunde la evenimentele recunoscute poate fi controlat prin scrierea procedurilor de eveniment. O asemenea procedura se va scrie în fereastra Code asociata obiectului. De fiecare data când apare evenimentul se executa procedura evenimentului respectiv. De exemplu, daca se scrie o procedura asociata cu evenimentul Open al unui document Word, procedura se va executa automat la fiecare deschidere a acelui documentului.
O procedura de eveniment este memorata în documentul, caietul, foaia de calcul, diapozitivul, forma utilizator etc. unde poate fi declansat evenimentul. Pentru a vedea codul sursa al procedurii, se va selecta obiectul în Project Explorer si click pe butonul View Code pentru a deschide fereastra de cod asociata. Dintr-o fereastra de cod deschisa, asociata, se va selecta obiectul vizat, din boxa de obiecte, si în boxa de proceduri vor fi listate atunci toate procedurile evenimentelor, chiar daca ele nu sunt efectiv scrise. Selectarea unui eveniment va scrie (daca nu exista) liniile obligatorii ale procedurii si va fixa cursorul de editare în procedura respectiva.
Numele unei proceduri de eveniment este format din numele obiectului, care recunoaste evenimentul, urmat de caracterul "_" si de numele evenimentului asociat. De exemplu, Document_Open este numele procedurii care se executa la deschiderea unui document.
Pentru controale ActiveX, numele este legat de numele codului controlului. Schimbarea numelui codului dupa ce s-au scris procedurile evenimentelor impune modificarea denumirilor acestora. La cele mai multe obiecte (Document, Worksheet, UserForm) denumirile sunt legate de numele clasei, deci nu mai trebuiesc redenumite.
Observatie. Daca se doreste ca o procedura sa fie asociata cu un document specific, dar nu cu un eveniment specific, atunci procedura se va scrie în sectiunea (General) a documentului respectiv (de exemplu o rutina care sa poata fi apelata din mai multe proceduri de eveniment).
Deoarece multe dintre denumirile obiectelor, proprietatilor sau metodelor care apar în codul VBA sunt complexe, mediul de dezvoltare ofera o serie de unelte pentru completarea automata a cuvintelor cheie, pentru oferirea de ajutor în reamintirea denumirilor etc.
Daca s-au tastat suficient de multe caractere încât VB poate recunoaste un cuvânt, atunci prin CTRL+SPACE, sau click pe butonul Complete Word de pe bara de unelte Edit, completeaza cuvântul.
În dialogul Options (meniul Tools) se pot activa urmatoarele actiuni, executate automat la completarea unei linii de cod:
Pe bara de unelte Edit exista câteva butoane, care ajuta la completarea cuvintelor si expresiilor în timpul scrierii instructiunilor:
O procedura poate sa se execute:
La apelul unei proceduri din alta procedura se va tine seama de interactiunea declaratiilor Public, Private, ca si de referintele la alte proiecte (meniul Tools - References).
|