Cel mai bun ghid VBA (pentru începători) veți avea vreodată nevoie


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.

  • Pentru a activa meniul dezvoltator în orice produs de birou, selectați Fișierputernic>meniu și selectați Opțiunidin meniul de navigare din stânga.
  • Veți vedea un meniu pop-up. Selectați Personalizați panglicădin meniul de navigare din stânga.
  • 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]->
    • Ar trebui să vedeți dezvoltatorul în lista din dreapta, dar nu va fi activat. Trebuie doar să bifați caseta de selectare pentru a activa meniul Dezvoltatorului.
      • Dacă nu vedeți dezvoltatoruldisponibil pe partea dreaptă, atunci schimbați stânga Alegeți comenziledin meniul vertical Toate comenzile. Găsiți Dezvoltatordin listă și selectați Adăugare>>în centru pentru a adăuga meniul respectiv pe Panglică.
      • Selectați OK>când ați terminat.
      • După ce meniul dezvoltator este activ, puteți să vă întoarceți la fereastra principală a aplicației și să selectați Dezvoltatordin meniul de sus.
      • Apoi, selectați Vizualizare coddin grupul Controluri din panglică pentru a deschide fereastra editorului VBA.
        • Aceasta va deschide fereastra editorului VBA unde puteți introduce codul pe care îl veți învăța în următoarele secțiuni.
          • Încercați să adăugați meniul Dezvoltator la câteva dintre aplicațiile Office pe care le utilizați în fiecare zi. . După ce vă deschideți confortabil fereastra editorului VBA, continuați la următoarea secțiune a acestui ghid.
          • 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ătoarestrong>

            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 rng
            If 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 + 2
            If 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 buclăverifică dacă o condiție este adevărată la începutul buclei.
            • Loopul în timpverifică dacă o condiție este adevărată după executarea declarațiilor din buclă.
            • Bucla de până la dataverifică dacă o condiție este încă falsă după executarea buclei.
            • În acest caz, ai rescrie t el În timp ce bucla de mai sus, ca o buclă Do-while.

              Do
              If 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 rng
              Select 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.

              Postări asemănatoare:


              29.01.2020