Macrocoduri în Visual Basic. Cum se scrie o macrocomandă simplă în Excel

Articolul este destinat persoanelor care doresc să învețe cum să scrie programe folosind Visual Basic (VBA) încorporat în Excel, dar habar nu au despre ce este vorba.

Pentru început, câteva cuvinte despre de ce este nevoie de acest lucru. Instrumentul VBA din MS Excel ne oferă un instrument universal pentru rezolvarea rapidă și precisă a oricăror sarcini individuale ale utilizatorului în MS Excel. Desigur, le puteți folosi pe cele încorporate în MS Funcții Excel dintre care sunt foarte multe, dar nu rezolvă întotdeauna problema.
Deci, să creăm, de exemplu cel mai simplu program. Vom folosi MS Excel 2007. Deschideți MS Excel, faceți clic pe „Salvați ca” și salvați fișierul programului făcând clic pe „Registrul de lucru Excel cu suport macro”.


Apoi, trebuie să activați fila „Dezvoltator”. Pentru a face acest lucru, faceți clic pe „Opțiuni Excel”

Bifați caseta „Afișați fila Dezvoltator pe panglică”


După aceea, pe panglică, în partea de sus a foii Excel, va apărea fila „Dezvoltator”, care conține instrumente pentru crearea macrocomenzilor VBA.
Să ne imaginăm o sarcină mică - să presupunem că avem 2 numere, trebuie să le adunăm și, folosind suma rezultată, să obținem valoarea din tabelul nostru.
Să punem următoarele valori în celulele din Sheet1:


pe Sheet2 completează celulele, creând un tabel de 2 coloane


Apoi, accesați Sheet1, faceți clic pe fila „Developer”, „Insert”, selectați butonul de pe ea
și desenați un buton pe Sheet1, după care va apărea imediat fereastra „Atribuiți macro-obiect”, în care selectăm „Creare”

După aceasta, se va deschide editorul Visual Basic și se va scrie automat numele procedurii care se va executa la apăsarea butonului. Sub numele procedurii, introduceți următorul cod:


Codul va face următoarele:

  • MsgBox ("Aceasta este prima mea macrocomandă!") - mesaj
  • Variabilei q i se atribuie valoarea unei celule din Sheet1, cu coordonatele 2 rânduri, 2 coloane
  • Variabilei w i se atribuie valoarea unei celule din Sheet1, cu coordonatele 3 rânduri, 2 coloane
  • Într-o celulă din Sheet1, cu coordonatele 4 rând, 2 coloane, se scrie suma q+w



În continuare, obținem valoarea coloanei B din Sheet2, care se află pe aceeași linie în care valoarea sumei noastre coincide cu valoarea coloanei A.
Să introducem următorul cod:


iar când faceți clic pe butonul obținem următorul rezultat:


Rezultatul arată că macro-ul a selectat un număr din tabelul din Sheet2 în conformitate cu suma noastră.
Nu voi intra în detalii despre acest cod complicat, deoarece scopul acestui articol este de a începe să scrieți macrocomenzi. Există o mulțime de resurse pentru VBA pe Internet, cu exemple și explicații, deși cantitatea de informații din ajutor este destul de suficientă pentru a automatiza calculele.

Astfel, folosind VBA este posibilă automatizarea calculelor de orice complexitate și secvență. Tabelele de referință pot fi copiate din diverse literaturi pe separat Foi Excelși scrieți un calcul secvenţial cu butoane.

Subiectul 2.3. Software de prezentare și noțiuni de bază privind programarea de birou

Subiectul 2.4. Sisteme de management al bazelor de date și sisteme expert

2.4.11. Baza de antrenament date cu butonul principal formularul „Training_students” - Descărcare

Programare VBA și macrocomenzi

2.3. Software de prezentare și noțiuni de bază privind programarea de birou

2.3.7. Bazele programării de birou

Limbajul de programare vizuală BASIC pentru aplicații: Visual Basic pentru aplicații (VBA)

VBA este un subset limbaj vizual Programare vizuală Basic (VB), care include aproape toate instrumentele pentru crearea aplicațiilor VB.

VBA diferă de limbajul de programare VB prin faptul că VBA este proiectat să funcționeze direct cu obiecte Office și nu poate fi utilizat pentru a crea un proiect independent de aplicațiile Office. Astfel, in VBA, limbajul de programare este VB, iar mediul de programare este implementat sub forma unui editor VB, care poate fi activat din orice aplicatie MS Office.

De exemplu, pentru a deschide editorul VBA din PowerPoint, trebuie să rulați comanda Instrumente / Macro / Editor VBA. Puteți reveni din editor la aplicație selectând comanda Microsoft PowerPoint din meniul Vizualizare sau apăsând combinația de taste Alt + F11.

Folosind setul de controale și editor de formulare încorporat în editorul VBA, utilizatorul poate crea interfața cu utilizatorul pentru un proiect în curs de dezvoltare cu un formular de ecran. Controalele sunt obiecte și fiecare obiect are un set de evenimente posibile (de exemplu, un clic sau dublu click mouse, apăsarea tastelor, tragerea unui obiect etc.).

Fiecare eveniment se manifestă în anumite acțiuni de program (răspunsuri, reacții). Un formular de utilizator vă permite să creați ferestre de dialog pentru aplicații. Limbajul de programare VBA este folosit pentru a scrie codul programului, cum ar fi crearea de funcții de utilizator în Excel.

Faptul că sistemul de programare VBA este proiectat să funcționeze cu obiecte Office îi permite să fie utilizat eficient pentru a automatiza activitățile de dezvoltare tipuri variate documente.

Să ne uităm la algoritmul pentru crearea funcțiilor utilizatorului în VBA:

1. Deschideți fereastra editorului de cod VBA executând comanda Tools / Macro / Visual Basic Editor sau apăsând Alt+F11.

2. Selectați elementul de meniu al editorului Inserare / Modul.

3. Apoi, executați Insert / Procedure. În caseta de dialog Add Procedure care se deschide, introduceți numele funcției (de exemplu, SUM5) și setați comutatoarele: Type – la poziția Funcție; Scop (Scope) - la poziția Public (General) și faceți clic pe OK.


Orez. 1.

4. În fereastra editorului pentru programarea VBA va apărea un șablon de funcție: titlu - Funcție publică SUM5() și final - Funcție de sfârșit, între care trebuie să plasați codul corpului funcției.


Orez. 2.

5. Apoi, introduceți o listă de parametri ai funcției, de exemplu, în paranteze indicăm (x, y, z, i, j), tipul de date (pentru calcule precise) și tipul de valoare returnată de funcție (în în acest exemplu nu vom intra). În plus, introducem corpul funcției, de exemplu, SUM5 = x + y + z + i + j. Ca rezultat, obținem următorul text de program:

Funcția publică SUM5(x, y, z, i, j)
SUM5 = x + y + z + i + j
Funcția de sfârșit

6. Revenind la fereastră aplicații Excel, în care, de exemplu, trebuie să însumăm cinci valori.

7. Executați „Inserare/Funcție” și în fereastra expertului de funcții care se deschide, selectați categoria „Definit de utilizator”, iar în fereastra „Selectați o funcție”, selectați SUM5 și faceți clic pe OK.



Orez. 3.



Orez. 4.

Macro-uri

Crearea unei macrocomenzi

Să creăm o macrocomandă care să însumeze automat două numere din celulele A1, B1 și să plasăm rezultatul în celula C1, precum și să umplem celula C1 cu culoarea turcoaz.

Algoritm pentru crearea unei macrocomenzi pentru sarcină:

1. Selectați Tools/Macro, Start Recording.

2. În câmpul Nume macrocomandă, introduceți un nume pentru macrocomandă. Primul caracter al numelui macro trebuie să fie o literă. Nu sunt permise spații în numele macrocomenzii; Puteți utiliza liniuțele de subliniere ca separatoare de cuvinte.

3. Pentru a rula o macrocomandă utilizând o comandă rapidă de la tastatură, introduceți o literă în câmpul Comandă rapidă de la tastatură. Utilizare acceptabilă combinații CTRL+ litera (pentru litere mici) sau CTRL+SHIFT+litera (pentru litere mari), unde litera este orice tastă de literă de pe tastatură. Nu selectați o comandă rapidă standard de la tastatură, deoarece comanda rapidă de la tastatură selectată înlocuiește comenzile rapide standard Cheile Microsoft Excelează în acel moment cu această carte.

4. În câmpul „Salvare”, selectați registrul de lucru în care doriți să salvați macrocomanda. Salvați macrocomanda în „Acest registru de lucru”. Pentru a crea descriere scurta macro, introduceți textul necesar în câmpul Descriere. Captura de ecran arată un exemplu de completare a casetei de dialog „Înregistrare macrocomandă”.


Orez. 5.

5. Faceți clic pe OK.

6. Executați comenzile macro pe care doriți să le înregistrați.


Orez. 6.

7. Faceți clic pe butonul Oprire înregistrare din bara de instrumente plutitoare a sistemului de operare (Oprire înregistrare) sau Instrumente / Macro / Oprire macrocomandă.

Când o macrocomandă a terminat înregistrarea, aceasta apare în lista de macrocomenzi sub numele ei.

Editorul VBA a înregistrat automat o secvență de macrocomenzi sau un program pe baza acțiunilor efectuate (Fig. 7.).



Orez. 7.

Pentru a apela o macrocomandă, trebuie să executați comanda Instrumente / Macro / Macro. După aceea, în caseta de dialog cu o listă de macrocomenzi, o puteți găsi după nume și faceți clic pe butonul Run.

Atribuirea unui buton din bara de instrumente pentru a rula o macrocomandă

Macrocomanda poate fi lansată folosind butonul din bara de instrumente încorporată; pentru a face acest lucru, trebuie să faceți:

  1. Selectați Setări din meniul Instrumente.
  2. În caseta de dialog Setări, selectați fila Comenzi și selectați opțiunea Macro-uri din lista Categorii și selectați „Buton personalizat” din lista Comenzi.
  3. Din lista de comenzi, utilizați mouse-ul pentru a trage butonul personalizat pe bara de instrumente.
  4. Faceți clic dreapta pe acest buton și selectați Atribuiți macrocomenzii meniul contextual.
  5. Introduceți un nume pentru macrocomandă în câmpul Nume macrocomandă.

Atribuirea unei zone a unui obiect grafic pentru a rula o macrocomandă:

  1. Creați un obiect grafic.
  2. Aplicați meniul contextual obiectului grafic selectat.
  3. Selectați comanda Atribuire macro din meniul contextual.
  4. În caseta de dialog Assign Macro to Object care apare, introduceți numele macrocomenzii în câmpul Macro name, apoi faceți clic pe OK.

Editarea unei macrocomenzi se realizează folosind editorul VBA; pentru a face acest lucru, trebuie să faceți următoarele:

  1. Selectați comanda Instrumente / Macro-uri / Macro-uri.
  2. Selectați numele macrocomenzii pe care doriți să o modificați din lista Nume.
  3. Faceți clic pe butonul Editare, se va deschide o fereastră Visual Basic, în care puteți edita comenzile macrocomenzii selectate scrise în Visual Basic.


Eliminarea unei macrocomenzi:

  1. Din meniul Instrumente, selectați Macrocomenzi, apoi selectați Macrocomenzi.
  2. În lista de macrocomenzi din registrul de lucru curent, trebuie să selectați macrocomandă pe care doriți să o ștergeți și să faceți clic pe butonul Ștergere.

Redenumirea unei macrocomenzi

Pentru a redenumi o macrocomandă, trebuie să intrați în modul de editare macro și să schimbați titlul în textul programului. Noul nume îl va înlocui automat pe cel vechi în listele de macro-uri și prin taste apel rapid macrocomanda va fi apelată cu noul nume.

Cu tabelele sau alte obiecte Office apar adesea situații când trebuie să faceți aceleași acțiuni. Acest lucru nu numai că ocupă timp suplimentar, dar este și foarte enervant. Din fericire, există macrocomenzi pentru a rezolva această problemă.

Proiectat pentru crearea de macrocomenzi mediu software VBA, dar nu trebuie să fii programator sau să înveți Visual Basic for Application pentru a învăța cum să le scrii. În acest scop, există instrumente special dezvoltate care creează cod VBA la comanda dumneavoastră, fără a necesita cunoștințe suplimentare din partea dumneavoastră. Cu toate acestea, stăpânirea acestei limbi nu este atât de dificilă.

Macro-urile sunt create în aplicații folosind instrumente de înregistrare. În acest caz, unei anumite combinații de taste i se atribuie secvența dorită de acțiuni. Deschideți o aplicație Office. Selectați fragmentul pe care îl veți formata.

Selectați elementul de meniu „Tools” -> „Macro” -> „Start Recording” (în Office 2007 – „View” -> „Macros” -> „Record Macro”). În fereastra „Înregistrare macrocomandă” care apare, setați numele noii macrocomenzi; implicit este „Macro1”, dar este mai bine să îi dați un nume, mai ales dacă vor exista mai multe macrocomenzi. Dimensiunea maxima câmpuri de nume – 255 de caractere, nu sunt permise caractere cu punct și spațiu.

Decideți alegerea butonului sau a combinației de taste pe care macrocomanda o va folosi în viitor. Încercați să alegeți cea mai convenabilă opțiune, mai ales dacă este destinată utilizării frecvente. Selectați elementul corespunzător în câmpul „Atribuiți macrocomandă”: „buton” sau „taste”.

Dacă selectați „buton”, se va deschide fereastra „Setări rapide”. Când selectați „taste”, trebuie doar să introduceți combinația pe tastatură. Examinați „Combinații curente” pentru a evita repetarea. Faceți clic pe „Atribuiți”.

Macrocomanda creată în Word și PowerPoint va fi valabilă pentru toate documentele în viitor. Pentru a face o macrocomandă Excel disponibilă pentru toate documentele, salvați-o în fișierul personal.xls, care rulează automat când deschideți aplicația. Executați comanda „Window” -> „Display” și selectați linia cu numele fișierului personal.xls în fereastra care apare.

Introduceți o descriere a macrocomenzii în câmpul Descriere. Faceți clic pe OK și veți reveni în document, dar acum puteți vedea o pictogramă de înregistrare pe cursorul mouse-ului. Formatați textul cu secvența de acțiuni pe care doriți să o automatizați. Fiți foarte atenți și nu faceți acțiuni inutile, deoarece macro-ul le va înregistra pe toate, iar acest lucru îi va afecta timpul de execuție în viitor.

Executați comanda „Instrumente” -> „Macro” -> „Opriți înregistrarea”. Ați creat un obiect VBA fără a scrie singur o singură linie de cod. Cu toate acestea, dacă tot trebuie să faceți modificări manual, introduceți obiectul prin secțiunea „Macrocomenzi”, comanda „Schimbare” sau folosind combinația de taste Alt+F8.

Capacitățile Excel nu se limitează la setul de funcții încorporate. Scriind macrocomenzi, vă puteți crea propriile funcții pentru a efectua sarcini non-standard în Excel.

De exemplu, o macrocomandă scrisă de sine poate fi atașată la o pictogramă și afișată pe Panglica de meniu. Sau puteți crea o funcție definită de utilizator (UDF) și să o utilizați la fel ca restul funcțiilor încorporate ale Excel.

O macrocomandă este un cod de calculator scris pentru Excel în limbajul de programare Visual Basic for Applications (VBA). Noțiuni de bază Limbajul de programare VBA este discutat pe site-ul nostru în Tutorialul VBA. Cu toate acestea, înainte de a începe să scrieți cod VBA, vă recomandăm să aruncați o privire la lecțiile care acoperă securitatea macrocomenzilor Excel și editorul Visual Basic.

Setarea permisiunii de utilizare a macrocomenzilor în Excel

Excel are protecție încorporată împotriva virușilor care pot pătrunde în computer prin intermediul macrocomenzilor. Dacă vrei să alergi într-o carte macrocomandă Excel, asigurați-vă că setările dvs. de securitate sunt configurate corect.

Editor Visual Basic

Înregistrare macrocomenzi

Instrumentele Excel de înregistrare macro sunt o modalitate excelentă de a finaliza eficient sarcini simple și repetitive. Poate fi folosit și ca ajutor atunci când scrieți macrocomenzi mai complexe.

Tutorial Excel VBA

Pentru cei care abia încep să stăpânească limbajul de programare Excel VBA, oferim un scurt curs introductiv despre Visual Basic pentru aplicații.

Pentru a automatiza sarcini repetitive în Microsoft Excel Puteți înregistra rapid o macrocomandă. Să presupunem că aveți date în formate diferite și doriți să aplicați același format tuturor. Acest lucru se poate face folosind o macrocomandă. Puteți înregistra o macrocomandă care se aplică formatul necesarși apoi rulați-l când este necesar.

Când înregistrați o macrocomandă, sunt înregistrate toate acțiunile descrise în codul Visual Basic pentru aplicații (VBA). Aceste acțiuni pot include introducerea de text sau numere, clic pe celule sau comenzi din panglică sau meniu, formatarea celulelor, rândurilor sau coloanelor și importarea datelor dintr-o sursă externă, de ex. Microsoft Access. O aplicație Visual Basic (VBA) este un subset al puternicului limbaj de programare Visual Basic care este inclus cu majoritatea aplicațiilor Office. Deși VBA oferă capacitatea de a automatiza procesele între aplicațiile Office, nu trebuie să cunoașteți codul VBA sau programarea software-ului dacă aveți nevoie.

Este important să știți că atunci când înregistrați o macrocomandă, aproape tot ceea ce faceți este înregistrat. Deci, dacă faceți o greșeală, cum ar fi apăsarea butonului greșit, macro recorder-ul va înregistra acțiunea respectivă. În acest caz, puteți scrie din nou întreaga secvență sau puteți modifica codul VBA. Prin urmare, înainte de a înregistra procesul, ar trebui să îl rezolvați bine. Cu cât înregistrați mai precis secvența, cu atât mai eficient va funcționa macro-ul.

Dezvoltator, care este ascuns în mod implicit, așa că trebuie să îl activați mai întâi. Pentru mai multe informații, consultați Afișare fila Dezvoltator.

Înregistrați o macrocomandă

Pe fila Dezvoltator clic Macro-uri pentru a vizualiza macrocomenzile asociate cu registrul de lucru. Alternativ, puteți apăsa tastele ALT+F8. Aceasta va deschide o casetă de dialog Macro.


Atenţie:

Aflați despre setările de securitate macro și semnificația acestora.

Macro-urile pot fi rulate căi diferite, de exemplu folosind o comandă rapidă de la tastatură, un obiect grafic, un panou acces rapid, butoane sau chiar la deschiderea unei cărți.

Puteți utiliza Editorul Visual Basic pentru a edita macrocomenzi care sunt atașate unui registru de lucru.

    atribuiți macro.

    În câmp Atribuiți macrocomandă

Aflați cum să activați sau să dezactivați macrocomenzi în fișierele Office.

Apăsați tastele ALT+F11.

Lucrul cu codul înregistrat în Editorul Visual Basic (VBE)

Cu Visual Basic Editor (VBE), puteți adăuga propriile variabile, structuri de control și alte elemente la codul înregistrat pe care macro recorderul nu le acceptă. Deoarece reportofonul macro captează aproape fiecare pas efectuat în timpul înregistrării, este posibil să fie necesar să eliminați și codul inutil. Revizuirea codului înregistrat este o modalitate excelentă de a învăța programarea VBA sau de a vă perfecționa abilitățile.

Un exemplu de modificare a codului înregistrat poate fi găsit în articolul Noțiuni de bază cu VBA în Excel.

Înregistrați o macrocomandă

Înainte de a înregistra macrocomenzi, este util să știți următoarele:

    O macrocomandă scrisă pentru a funcționa cu un interval Excel va rula numai pe celulele din acel interval. Deci, dacă adăugați la gamă linie nouă, macrocomanda nu i se va aplica.

    Dacă trebuie să înregistrați o secvență lungă de sarcini, vă recomandăm să utilizați mai multe macrocomenzi mai mici.

    O macrocomandă poate conține și sarcini non-Excel. Procesul macro poate acoperi alte aplicații Office și alte programe care acceptă Visual Basic pentru aplicații (VBA). De exemplu, puteți înregistra o macrocomandă care actualizează mai întâi un tabel în Excel și apoi deschide Outlook pentru a-l trimite prin e-mail.

Macro-urile și instrumentele VBA sunt situate în filă Dezvoltator, care este ascuns în mod implicit, așa că trebuie să îl activați mai întâi.

    Accesați setări > excela... Bara de instrumente și > Panglici.

Pentru a înregistra o macrocomandă, urmați instrucțiunile de mai jos.

Lucrul cu macrocomenzi înregistrate în Excel

Pe fila Dezvoltator clic Macro-uri pentru a vizualiza macrocomenzile asociate cu registrul de lucru. Aceasta va deschide o casetă de dialog Macro.

Notă: Macrocomenzile nu pot fi anulate. Înainte de a rula o macrocomandă înregistrată pentru prima dată, salvați sau creați o copie a registrului de lucru pentru a preveni modificările nedorite. Dacă nu sunteți mulțumit de rezultatele macrocomenzii, puteți închide registrul de lucru fără a-l salva.

Iată mai multe informații despre lucrul cu macrocomenzi în Excel.

Aflați cum să activați sau să dezactivați macrocomenzi în Excel pentru Mac.

Dacă un registru de lucru conține o macrocomandă VBA pe care doriți să o utilizați în altă parte, puteți copia acel modul într-un alt registru de lucru folosind editorul Microsoft Visual De bază.

Atribuirea unei macrocomenzi unui obiect, unei forme sau element grafic

    Într-o foaie de lucru, faceți clic dreapta pe obiectul, imaginea, forma sau elementul căruia doriți să îi atribuiți o macrocomandă existentă, apoi faceți clic pe atribuiți macro.

    În câmp Atribuiți macrocomandă selectați macrocomandă pe care doriți să o atribuiți.

Puteți să atribuiți o macrocomandă unei pictograme și să o adăugați la Bara de instrumente de acces rapid sau la Panglică.

Puteți atribui macrocomenzi formularelor și controalelor ActiveX dintr-o foaie de lucru.

Deschiderea editorului Visual Basic

Pe fila Dezvoltator clic Visual Basic sau selectați Serviciu > Macro > Editor Visual Basic.

Aflați cum să găsiți ajutor pentru elementele Visual Basic.

Informații suplimentare

Puteți oricând să puneți o întrebare unui specialist Excel Tech Community, să cereți ajutor în comunitatea Answers și, de asemenea, să sugerați optiune noua sau îmbunătățirea site-ului

Acțiune