Platforma Programare VBA care se desfășoară pe aproape toate produsele Microsoft Office este unul dintre cele mai puternice instrumente pe care oricine le poate folosi pentru a îmbunătăți utilizarea acestor produse.
Acest ghid VBA pentru începătorii îți vor arăta cum să adaugi meniul Dezvoltator la aplicația Office, cum să intri în fereastra editorului VBA și cum funcționează declarațiile și buclele VBA de bază, astfel încât să poți începe să folosești VBA în Excel, Word, Powerpoint, Outlook și OneNote .
Aceasta Ghidul VBA folosește cea mai recentă versiune a produselor Microsoft Office. Dacă aveți o versiune anterioară, puteți vedea unele mici diferențe față de capturile de ecran.
Cum să activați și să folosiți editorul VBA
În oricare dintre Office produsele utilizate în acest ghid, este posibil să observați că nu aveți meniul dezvoltatorului la care faceți referire. Meniul dezvoltator este disponibil numai în Excel, Word, Outlook și Powerpoint. OneNote nu oferă un instrument pentru a edita codul VBA din interiorul aplicației, dar puteți totuși face referire la API-ul OneNote pentru a interacționa cu OneNote din alte programe Office.
Veți afla cum să faceți acest lucru în viitorul nostru ghid VBA avansat.
Lista din stânga include toate meniurile și comenzile de meniu disponibile în aplicația Office. Lista din dreapta sunt cele care sunt momentan disponibile sau activate.
In_content_1 all: [300x250] / dfp: [640x360]->Sfaturi generale de programare VBA pentru începători
Veți observa când se va deschide editorul VBA, opțiunile de navigare din panoul din stânga arată diferit de la o aplicație Office la alta.
Aceasta se întâmplă pentru că obiectele disponibile în care puteți plasa cod VBA depind de ce obiecte există în aplicație. De exemplu, în Excel, puteți adăuga cod VBA în registrul de lucru sau în obiectele de foaie. În Word, puteți adăuga cod VBA la documente. În Powerpoint, numai la module.
Deci, nu vă mirați de diferitele meniuri. Structura și sintaxa codului VBA este aceeași în toate aplicațiile. Singura diferență sunt obiectele la care puteți face referință și acțiunile pe care le puteți efectua asupra acestor obiecte prin intermediul codului VBA. uită-te la cea mai comună structură VBA și sintaxa pe care o poți folosi atunci când scrii cod VBA.
Unde să pui codul VBA
Când ești în Editor VBA, trebuie să utilizați cele două casete derulante din partea de sus a ferestrei de editare pentru a alege la ce obiect doriți să atașați codul și când doriți să fie executat codul.
De exemplu, în Excel, dacă alegeți Foaie de lucruși Activare, codul va rula de fiecare dată când foaia de lucru este deschisă.
Altă foaie de lucru acțiunile pe care le puteți utiliza pentru a declanșa codul dvs. VBA includ atunci când se schimbă foaia de lucru, când este închis (dezactivat), când se execută calculul foii de lucru și multe altele.
Când adăugați cod VBA în editor, faceți întotdeauna asigurați-vă că plasați codul VBA pe obiect și utilizați acțiunea corectă pe care doriți să o utilizați pentru a declanșa codul.
Declarații VBA IF
An IF instrucțiunea funcționează în VBA la fel ca și în orice alt limbaj de programare.
Prima parte a declarației IF privește dacă o condiție sau un set de condiții este adevărat. Aceste condiții pot fi unite de către un operator AND sau OR pentru a le lega.
Un exemplu ar fi să verificați dacă o notă dintr-o foaie de calcul este peste sau sub o notă „de trecere” și să alocați pasul sau starea eșuării la o altă celulă.
Dacă celule (2, 2)>75 Atunci Cells (2, 3) = "Treceți" celule de altă natură (2, 3) = "Eșuează">
Dacă nu doriți întreaga afirmație pe o singură linie, o puteți împărți în mai multe linii adăugând un simbol „_” la sfârșitul liniilor.
Dacă celule (2, 2)>75 Apoi _
Celule (2, 3) = "Treceți" Altele _
Celule (2, 3) = "Eșuează"
Utilizarea acestei tehnici poate face de multe ori codul mult mai ușor de citit și depanat.
VBA pentru buclele următoare/>strong>
Instrucțiunile IF sunt excelente pentru comparații unice, cum ar fi exemplul de mai sus privind o singură celulă. Dar ce se întâmplă dacă doriți să faceți o buclă printr-o gamă întreagă de celule și să efectuați aceeași declarație IF pentru fiecare?
În acest caz, veți avea nevoie de o buclă FOR.
Pentru a face acest lucru, va trebui să utilizați lungimea unui interval și să-i desfășurați această lungime la numărul de rânduri care conțin date.
Pentru a face acest lucru, trebuie să pentru a defini variabilele de gamă și celule și de a le bucla prin ele. De asemenea, va trebui să definiți un contor pentru a putea transmite rezultatele la rândul corespunzător. Deci, codul dvs. VBA ar avea mai întâi această linie.
Dim rng ca rază, celule ca rază
Dim rowCounter ca întreg
Definiți dimensiunea intervalului după cum urmează.
Setare rng = Range („B2: B7”)
rowCounter = 2
În cele din urmă, puteți crea bucla FOR pentru a parcurge fiecare celulă din intervalul respectiv și a face comparația.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
Odată ce acest Script VBA este executat, vedeți rezultă în foaia de calcul reală.
VBA În timp ce buclele
A În timp ce Loop se bucură de asemenea printr-o serie de declarații, la fel ca bucla FOR, dar condiția de a continua bucla este o condiție rămasă true.
De exemplu, puteți scrie aceeași buclă FOR mai sus, ca o buclă WHILE, pur și simplu folosind variabila rowCounter după cum urmează.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
Notă: limita de terminare rng.Count + 2este necesară, deoarece contorul de rânduri începe la 2 și trebuie să se încheie pe rândul 7 unde se termină datele. Cu toate acestea, numărul intervalului (B2: B7) este de doar 6, iar bucla de Încetare se va încheia doar odată ce contorul este MAI MULTE decât contorul - deci valoarea ultimei rânduri a numărului trebuie să fie 8 (sau rng.Count + 2).
Puteți configura, de asemenea, bucla Deși, după cum urmează:
În timp ce rowCounter <= rng.Count + 1
Puteți nu face decât să creșteți numărul de intervale (6) cu 1, deoarece odată ce variabila rowCounter ajunge la sfârșitul datelor (rândul 7), bucla se poate termina.
VBA Faceți în timp și faceți până la bucle
Faceți în timp ce faceți până când buclele sunt aproape identice cu buclele În timp ce buclele, dar funcționează ușor diferit.
În acest caz, ai rescrie t el În timp ce bucla de mai sus, ca o buclă Do-while.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
În acest caz, logica nu se schimbă foarte mult, dar dacă doriți să vă asigurați că logica comparația are loc după ce toate rulările sunt executate (permițându-le tuturor să ruleze indiferent de cel puțin o dată), atunci o buclă Do-while sau Do-Until este opțiunea corectă.
Declarații de caz VBA Select
Tipul final de declarație logică pe care trebuie să înțelegeți pentru a începe structurarea codului VBA sunt instrucțiunile Select Case.
Având în vedere exemplul de mai sus, să zicem că doriți să aveți o metodă de clasare care nu este doar trecerea eșua. În schimb, doriți să atribuiți o notă de scrisori de la A la F.
Puteți face acest lucru cu următoarea instrucțiune Selectare caz:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
Foaia de calcul rezultată după ce acest script VBA rulează seamănă cu cel de mai jos.
Acum știți tot ce trebuie să știți pentru a începe să utilizați VBA în aplicațiile Microsoft Office.