Folosirea ferestrelor principale din Visual Basic Editor

Fereastra Project Explorer

Project Explorer este un instrument de navigare la diferite obiecte din Visual Basic Editor.

În funcție de aplicația gazdă și caracteristicile ei, fiecare proiect poate conține o parte sau toate elementele de mai jos.

Se folosește Project Explorer pentrua naviga la modulul care va fi modificat.

Acestea pot fi:

  • Formulare de utilizator - User forms (ferestre care fac parte din interfața macrocomenzii, de exemplu ferestre de dialog în care se introduc date).
  • Module care conțin macrocomenzi, procedure și funcții.
  • Module clasă - Class modules (module specializate care definesc obiecte, proprietățile și valorile lor).
  • Referințe la alte proiecte sau la fișiere din biblioteci de date (de exemplu, DLL—Dynamic Link Libraries).
  • Obiecte legate de aplicație. De exemplu, fiecare document și șablon Word conține un folder Microsoft Word Objects în care se află un obiect de clasă numit ThisDocument. Acest document vă oferă acces la proprietățile și evenimentele (acțiunile la care obiectul poate reacționa, cum ar fi evenimentul clic) pentru document sau șablon. Fiecare registru de lucru Excel conține un obiect clasă numit ThisWorkbook care vă oferă acces la proprietățile și evenimentele pentru registrul de lucru și câte un obiect Sheet (numit Sheet1, Sheet2, și așa mai departe) pentru fiecare foaie de lucru.

Pentru majoritatea aplicațiilor gazdă, fiecare document și șablon deschis este considerat un proiect separat și este afișat ca o rădăcină în arborele proiectului. Arborele proiectului conține, de asemenea, containere globale de stocare macrocomenzi - cum ar fi șablonul Normal.dotm din Word sau Macro Workbook Personal din Excel și orice add-in-uri care sunt încărcate.

De exemplu, în figura de mai sus, Normal.dotm este identificat ca Normal, iar documentul activ este identificat ca Project (Document2 - adică numele documentului activ).

Modificarea numelui unui proiect

Puteți modifica numele unui proiect utilizând caseta de dialog Project Properties sau selectând proiectul și introducând un nume nou în panoul Proprietăți afișat direct sub panoul Project Explorer.

După schimbarea numelui, proiectul este identificat prin acest nume în Project Explorer, urmat de numele documentului sau al șablonului.

Navigați în Project Explorer făcând clic pe semnul plus în caseta din stânga unui element de proiect pentru a extinde vizualizarea și pentru a afișa elementele conținute în proiect și faceți clic pe semnul minus în caseta rezultată pentru a restrânge vizualizarea și a ascunde elementele. Faceți dublu clic pe un modul pentru a afișa codul acestuia în fereastra Code. Faceți dublu clic pe un formular de utilizator pentru a-l afișa în fereastra Code.

Editorul Visual Basic afișează în mod implicit fereastra Project Explorer, care oferă navigare rapidă și eficientă între diferitele elemente ale proiectelor VBA.

Fereastra Project Explorer poate fi închisă cu clic pe butonul de închidere (butonul X din bara de titlu). Pentru a reafișa Project Explorer, se apasă Ctrl + R sau din meniu se alege View> Project Explorer.

În bara de instrumente de sus din fereastra Project Explorer apar trei butoane:

View Code

Afișează fereastra Code pentru obiectul selectat. De exemplu, la selectarea unui formular din Project Explorer și la clic pe butonul View Code, Visual Basic Editor afișează fereastra Code care conține codul pentru acel formular. La selectarea unui modul sau a unei clase modul din Project Explorer și clic pe butonul View Code, Visual Basic Editor afișează o fereastră Code care conține codul din acel modul. Cu clic dreapta pe un element din Project Explorer este afișat meniul rapid din care se poate alege View Code.

Code este sinonim cu limbaj de programare - o serie de comenzi tastate (sau înregistrate) care determină computerul să se comporte într-un anumit fel. Code mai este numit și cod de programare sau cod sursă.

Cuvintele folosite în programare - termeni ca Selection sau End Sub, de exemplu în VBA – pot avea diferite denumiri: instrucțiuni, cuvinte-cheie, comenzi și altele. Aici va fi folosit termenul de comandă.

Dublu-Clic pe module pentru a le vedea codul

Pentru a vedea codul unui modul sau a unui modul clasă, se poate da dublu-clic pe obiect. Această modalitate este mai rapidă. Pentru a vedea un formular sau un fișier, se face dublu-clic pe opțiunea View Object (descrisă mai jos).

View Object

Afișează o fereastră care conține obiectul selectat. Butonul View Object rămâne dezactivat până când selectați un obiect (cum ar fi un formular de utilizator sau un fișier sau un obiect dintr-un fișier) care poate fi afișat. Dacă obiectul selectat este un formular, cu clic pe butonul View Object se afișează formularul de utilizator; dacă obiectul selectat este un fișier sau un obiect dintr-un fișier, cu clic pe butonul View Object afișează acel obiect în fereastra aplicației gazdă.

De exemplu, selectând obiectul ThisDocument pentru un document Word și făcând clic pe butonul View Object se comută la documentul Word real din fereastra Word. Selectarea unui obiect Sheet1 dintr-un registru de lucru Excel și făcând clic pe butonul View Object afișează foaia de lucru în registrul de lucru Excel din fereastra Excel.

Vizualizarea unui obiect

Modul View Object poate fi accesat cu clic-dreapta pe un obiect și alegerea opțiunii View Object din meniul rapid sau clic-dreapta pe un obiect care suportă caracteristica View Object. (Dacă obiectul nu suportă caracteristica View Object, dublu-clic se declanșează modul View Code.)

Toggle Folders

Comută modul de afișare al obiectelor din Project Explorer între vedere folder (se afișează obiectele grupate în proiecte și foldere) și vedere conținut (afișează doar obiectele din proiecte – nu sunt afișate folderele).

În imaginea de mai jos, partea stângă (Toggle folders activat), Vedere Folder afișează obiectele separate în foldere în fața proiectelor care le conțin.

În partea dreaptă, comutat la Vedere Conținut, afișează doar obiectele și proiectele din acele foldere.

În funcție de modul de lucru, se poate comuta între afișarea cu foldere și afișarea cu obiectele conținute, pentru a le localiza mai ușor

În Project Explorer, pe lângă navigarea la elemente, se mai pot realiza operațiunile:

  • Adăugare sau eliminare de componente dintr-un proiect. De exemplu, Project Explorer se poate folosi pentru a adăuga un modul sau un formular la un proiect.
  • Comparare componente ale unui proiect cu cele ale altui proiect. Comparația poate fi utilă pentru a stabili rapid diferențele dintre două sau mai multe proiecte.
  • Mutare sau copiere elemente de la un proiect la altul. Se folosește tehnica drag&drop pentru a muta sau copia un modul, un modul clasă sau un formular de la un proiect la altul, dintr-o instanță Visual Basic Editor în altă instanță. De exemplu, se poate trage un formular din instanța Visual Basic Editor găzduită de Excel într-o sesiune Visual Basic Editor găzduită de PowerPoint. Nu pot fi copiate sau mutate obiecte specifice unei anumite aplicații; de exemplu, nu se poate trage o foaie de lucru Excel în Project Explorer din Word, pentru că Word nu suportă acel tip de obiect.
  • Import sau export de module sau formulare.

Project Explorer este cea mai bună cale de navigare

Multe acțiuni care pot fi realizate prin intermediul Project Explorer, pot fi efectuate și prin elementele de meniu din Editorul Visual Basic. În general, însă, Project Explorer oferă cea mai ușoară cale de navigare în Editorul Visual Basic, mai ales dacă aveți vreodată mai multe proiecte complexe deschise în același timp. Puteți accesa cele mai frecvent utilizate funcții pentru un obiect făcând clic dreapta pe obiect în Project Explorer pentru a afișa meniul contextual.

Object Browser

Visual Basic Editor oferă un Object Browser complet pentru lucrul cu obiectele din VBA.

În figura următoare este afișat Object Browser pentru o sesiune în Word VBA.

În panoul din stânga este selectat obiectul Document, iar în dreapta este afișată o listă cu proprietățile sale. (Pentru a afișa fereastra Object Browser în VBA Editor, se apasă tasta F2.)

O parte din aceste proprietăți au o importanță imediată pentru lucrul cu documentele Word.

De exemplu, proprietatea AttachedTemplate indică șablonul la care este atașat în prezent documentul. De asemenea, proprietatea Bookmarks conține informații despre orice marcaj din document.

Informațiile despre proprietăți sunt afișate în partea de jos a browserului de obiecte. Unul dintre lucrurile grozave din limbajul BASIC (VBA fiind o variantă BASIC și despre bibliotecile obiectelor care stau la baza aplicatiilor Office) este că folosesc în general terminologia din engleza obișnuită.

Fereastra Code

Cea mai mare parte a lucrărilor de testare și editare a macrocomenzilor se face în fereastra Code din Visual Basic Editor. (Deoarece codul este scris în text simplu, el poate fi scris în Notepad și apoi îl inserat în Editorul de coduri pentru testare și depanare. Editorul Visual Basic oferă foarte multe instrumente utile de programare.)

În Visual Basic Editor se poate deschide câte o fereastră Code pentru fiecare proiect deschis, pentru fiecare secțiune de document din proiect care conține cod și pentru fiecare modul și formular. Fiecare fereastră Code are ca titlu numele proiectului, numele modulului din proiect și cuvântul Code între paranteze.

Sub bara cu instrumente, în partea de sus a ferestrei Code apar două liste ascunse:

  • Lista Object din partea stângă sus a ferestrei Code oferă o modalitate rapidă de navigare la diferite obiecte.
  • Lista Procedure din partea dreaptă sus a ferestrei Code permite navigarea de la o procedură la alta din modulul curent. Cu clic pe butonul din dreapta listei este afișată lista cu proceduri. Prima procedură este (Declarations). Cu clic pe acest element din listă este afișată zona cu declarații din codul curent al fișierului, zonă în care se declară variabilele publice și alte informații VBA folosite de procedurile care urmează în modul.

Fereastra Code din Visual Basic Editor oferă diverse funcții care ajută la editarea codului în mod eficient și precis.

Completare cuvânt (Complete Word)

Caracteristica Complete Word completează automat un termen când au fost testate suficiente litere pentru a-l identifica. Sau, dacă nu a fost tastat niciun caracter, afișează o listă din care se poate alege termenul corespunzător.

Caracteristica Complete Word poate completa cuvântul care se tastează în fereastra Code, după ce au fost testate suficiente litere pentru a deosebi un cuvânt de un altul. Dacă nu au fost tastate suficiente litere pentru a identifica acel cuvânt, Visual Basic Editor afișează posibilitățile cele mai apropiate. În acest caz, fie se continuă tastarea, pentru a micșora lista cu posibilități, fie se derulează până la cuvântul care va fi folosit.

Bara cu instrumente Edit conține caracteristici folosite la lucrul cu fereastra Code.

Cea mai simplă metodă de a afișa lista Complete Word în timpul tastării este prin apăsarea tastelor Ctrl+spacebar.

Se poate alege și Edit > Complete Word sau clic pe butonul Complete Word din bara cu instrumente Edit.

De reținut că inițial bara cu instrumente Edit nu este vizibilă. Ea poate fi afișată alegând View > Toolbars > Edit sau cu clic-dreapta peste bara cu instrumente din Editor, apoi bifarea opțiunii Edit din meniul rapid afișat.

Informații rapide (Quick Info)

Caracteristica Quick Info afișează un text informativ (ScreenTip) care arată informații despre sintaxa folosită la variabila, funcția , metoda, comanda sau subrutina selectată. (Aici Selectată însemnă că locul în care se află cursorul care clipește se află în cuvântul din cod.)

De exemplu, la tastarea comenzii MsgBox și apăsarea barei de spațiu, în ScreenTip este afișată sintaxa comenzii, pentru a ajuta la completarea corectă a comenzii: elementele obligatorii și opționale ale comenzii. Elementele opționale sunt încadrate între paranteze pătrate.

Pentru a afișa caracteristica Quick Info, poate fi folosită una din metodele:

  • Se tastează un spațiu după o comandă VB. De exemplu, se tastează msgbox (apoi se apasă bara de spațiu).
  • Clic pe pictograma Quick Info din bara cu instrumente Edit.
  • Clic dreapta pe o comandă VB și din meniul rapid se alege Quick Info.
  • Se poziționează cursorul în comandă și se apasă combinația de taste Ctrl+I.
  • Se poziționează cursorul în comandă și din meniu se alege Edit > Quick Info.
  • Atunci când sunt tastate comenzi reale din limbajul VBA (spre deosebire de variabile sau obiecte), cel mai simplu mod de a vedea Quick Info este să se tasteze numele comenzii (cum ar fi MsgBox), să se apese tasta bara de spațiu.

De reținut că VB nu acordă atenție caracterelor cu care sunt introduse comenzile (majuscule sau litere mici), astfel încât se poate scrie msgbox sau MSGBOX sau oricare altă variantă. După ce se termină tastarea pe acea linie de cod (apăsând tasta Enter), VBA Editor va modifica automat comanda la modul standard: MsgBox.

Membri Auto List

Multe comenzi VB au proprietăți (calități) și metode (comportamente). Luate împreună, proprietățile și metodele unui obiect sunt numite membri ai comenzii.

De exemplu, într-o casetă de tip MsgBox pot fi afișate diferite pictograme (de exemplu, semnul întrebării, semnul exclamării și altele) pentru a atenționa utilizatorul în legătură cu scopul mesajului (întrebare, avertisment, etc.).

Acest tip de pictogramă se numește Buttons property (proprietate buton) a obiectului casetei cu mesaje. Și această proprietate este specificată imediat după mesajul text în linia de cod. Prin urmare, când se introduce o virgulă care indică faptul că se va specifica pictograma folosită în caseta de mesaje, funcția Auto List Members deschide o listă derulantă a opțiunilor disponibile. În figura de mai jos a fost aleasă proprietatea VBOKOnly, dar există și alte opțiuni posibile, cum ar fi vbOKCancel, vbQuestion și așa mai departe.

Comanda Auto List Members se folosește pentru a adăuga elemente de cod rapid și corect.

Lista Auto List Members permite completarea rapidă a liniei de cod. Lista Auto List Members este activată implicit și este afișată automat atunci când în comandă se tastează un punct pentru descrierea obiectului sau o virgulă, paranteze sau altă punctuație într-o linie de cod. În imaginea de mai sus, după virgula tastată, apare lista cu setările butoanelor. (Aceste setări se numesc constante - constants.)

Alternativ, lista cu membrii comenzii se poate afișa la clic pe butonul List Properties/Methods din bara cu instrumente Edit (sau cu combinația de taste Ctrl+J).

Pentru a introduce un anumit membru în cod folosind Auto List Members se urmează etapele:

  1. Se apasă tasta săgeată în jos sau de derulează folosind rotița de maus pentru a derula până la proprietatea sau metoda dorită. Se pot tasta și primele caractere din numele proprietății sau metodei pentru a ajunga la ea mai rapid.
  2. Se completează codul cu acea proprietate sau metodă, astfel:

a. Se apasă tasta Tab sau dublu clic pe acea proprietate sau metodă, după care se continuă adăugarea de cod la această linie, în cazul în care mai trebuie adăugate proprietăți opționale pe linie.

b. După introducerea proprietății sau metodei, se apasă tasta Enter pentru a începe o nouă linie.

Afișare constante (List Constants)

Caracterisitica List Constants afișează o listă care conține constantele unei proprietăți testate, pentru a completa rapid acea expresie. List Constants este implicit activată. Alternativ, lista poate fi afișată cu clic pe butonul List Constants din bara cu instrumente Edit.

Caracteristica List Constants scurtează timp și efort, mai ales atunci când se tastează nume complexe de constante.

Pentru a folosi List Constants, se urmează etapele:

  1. Se tastează Set objWord = în fereastra Code. Lista cu constante este afișată ca în figura de mai sus.
  2. Se apasă ↓ (tasta săgeată în jos) pentru a derula la constanta dorită sau se tastează primele litere ale constantei sau se derulează lista cu mausul pentru a ajunge la acea constantă.
  3. Constanta poate se introduce în cod astfel:
    • Se apasă tasta Tab sau se face dublu clic pe constantă, pentru a continua lucrul pe aceeași linie după introducerea constantei.
    • Se apasă tasta Enter pentru a trece pe linia următoare după introducerea constantei.

Caracteristica Data Tips

Caracteristica Data Tips se folosește pentru a verifica valoarea unei variabile atunci când se execută codul în modul Step Into.

Dacă la executarea unei macrocomenzi, Visual Basic Editor este în modul Break (mod folosit la verificare și depanare macrocomenzi), atunci când săgeata mausului se află peste numele unei constante, caracteristica Data Tips afișează un mesaj (ScreenTip) care conține valoarea variabilei. Caracteristica Data Tips este implicit activată și se poate activa/dezactiva din Tools > Options, secțiunea Editor.

Indicatoarele de pe margine - Margin Indicators

Caracteristica Margin Indicators permite:

  • adăugarea unui punct de întrerupere (breakpoint) la următoarea instrucțiune, cu tasta F9 sau clic pe margine - este afișat ca un cerc pe marginea din stânga

sau

  • adăugarea unui semn de carte (bookmark) cu clic dreapta pe marginea din dreapta a ferestrei Code, apoi din meniul rapid Toggle se alege Bookmark - pe marginea din stânga este afișat un dreptunghi de culoare turcoaz.

Alte caracterisitici pentru editare

Fereastra Code include și caracterisitici standard de editare Office, cum ar fi copiere și adăugare sau mutare, tehnica drag and drop. De exemplu, se poate trage cod dintr-o procedură sau modul în alta.

Fereastra Properties

Visual Basic Editor conține și o fereastră Properties care poate fi folosită la vizualizarea și modificarea proprietăților unui obiect din VBA, cum ar fi un proiect, un modul sau o clasă, un formular sau un control (de exemplu, un buton sau o casetă de bifare dintr-o casetă de dialog). Dacă fereastra Properties este ascunsă, se reafișează apăsând tasta F4.

În lista din partea de sus a ferestrei Properties se poate selecta obiectul și proprietățile care vor fi vizualizate sau modificate. Sau se poate selecta un element din fereastra Project Explorer. Opțiunea Alphabetic afișează o listă alfabetică a proprietăților elementului, iar opțiunea Categorized prezintă o listă a proprietăților, grupate pe categorii.

Fereastra Properties se folosește pentru a vizualiza proprietățile unui proiect, formular, modul, clasă sau control.

Fereastra cu proprietăți ale documentului activ din Word, cu opțiunea Alphabetic (stânga) și cu opțiunea Categorized (dreapta).

Visual Basic Editor se poate afla în unul din cele 3 moduri, care reflectă trei faze fundamentale ale programării - scrierea codului, localizarea unei erori și depanarea erorii:

Design mode

Cunoscut și ca design time. Modul Design mode este folosit atunci când se scrie cod în Visual Basic Editor. Nu trebuie să proiectați nimic vizual în mod activ - de exemplu, un control al utilizatorului sau un formular. De asemenea, de multe ori, se tastează doar cod sursă (comenzi pe care Visual Basic le va executa când se trece la modul Run) sau se poate edita codul care a fost înregistrat.

Run mode

Cunoscut și ca runtime. La rularea codului, este folosit modul Run. Macrocomanda va fi executată ca și cum ar fi lansată dintr-o altă aplicație, de exemplu Excel (folosind o combinație de taste sau cu clic pe un buton de pe bara Quick Access Toolbar). Scopul modului Run din Visual Basic Editor este de a permite testarea și observarea comportamentului codului și de a interacționa cu el dacă este necesar, pentru a vedea dacă funcționează cum s-a presupus. Aceste operațiuni sunt cunoscute ca și depanare - debugging. Dacă apar probleme la testare, se poate opri executarea macrocomenzii apăsând combinația de taste Ctrl+Break, apoi verificarea valorilor din variabile sau încercări de detectare unde se află eroarea în cod. VBA poate comuta automat la modul Break dacă detectează o eroare.

Break mode

Atunci când codul rulează, dar execuția este temporar suspendată, modul activ este Break. Printre altele, modul Break permite trecerea printr-o singură comandă sau o procedură în același timp (mai degrabă decât executarea simultană a tuturor comenzilor la viteză maximă). Stepping este un instrument foarte util la depanare sau examinare cod.

Pentru a modifica o proprietate, clic pe celula care conține numele proprietății. Dacă în partea dreaptă a celulei apare o săgeată în jos, clic pe ea pentru a alege o nouă valoare din listă. Dacă nu apare nicio săgeată, clic în celulă pentru a tasta o altă valoare.

În funcție de tipul proprietății, pot fi alese valori diferite din listele verticale (drop-down). Proprietatea True/False limitează lista la două opțiuni. Pentru proprietatea nume (Name), se poate introduce orice nume valid VBA.

Implicit, fereastra Properties se află sub fereastra Project Explorer. Lățimea ferestrelor Properties și Project Explorer poate fi modificată prin tragerea de marginea acestora.

Dacă se mută fereastra Properties (prin tragere sau dublu clic pe bara de titlu), ea poate fi redimensionată – mărită pentru a afișa mai multe proprietăți sau micșorată pentru a ocupa mai puțin spațiu în Visual Basic Editor. Ferestrele din interior (nuimte și panouri, cum ar fi panoul Properties) se pot muta prin tragere sau dublu clic pe bara de titlu. Pentru a le readuce la locul lor, se face iar dublu clic pe bara de titlu.

Fereastra Immediate

Fereastra Immediate (afișare cu tastele rapide Ctrl+G) se folosește pentru teste și aflare de informații.

După tastarea unei linii de cod în fereastra Immediate și apăsarea tastei Enter, Visual Basic Editor execută acel cod.

Fereastra Immediate poate fi folosită și pentru a scrie linii de cod, fără a le introduce în macrocomandă.

De exemplu, în Excel, cu comanda

activesheet.name = range("A1").Value

se poate redenumi numele foii active - aici, valoarea pentru nume este preluată din celula A1.