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

Articolul este destinat persoanelor care doresc să învețe cum să scrie programe în Excel Visual Basic (VBA) încorporat, dar absolut nu știu ce este.

Pentru început, câteva cuvinte despre motivul pentru care este necesar acest lucru. Instrumentul VBA din MS Excel ne oferă un instrument universal pentru rezolvarea rapidă și precisă a sarcinilor individuale ale utilizatorilor din MS Excel. Desigur, puteți utiliza funcțiile încorporate în MS Excel, dintre care există o mare varietate, dar acestea nu rezolvă întotdeauna sarcina la îndemână.
Deci, să creăm un program simplu, de exemplu. Vom folosi MS Excel 2007. Deschideți MS Excel, faceți clic pe „Salvați ca” și salvați fișierul programului dvs. făcând clic pe „Carte Excel cu suport macro”.


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

Puneți o bifă pe „Afișați fila„ Dezvoltator ”pe panglică„


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


pe Sheet2, umpleți celulele creând un tabel de 2 coloane


Apoi, mergeți la Sheet1, faceți clic pe fila „Dezvoltator”, „Inserați”, pe ea, selectați butonul
și desenați un buton pe Sheet1, după care va apărea imediat fereastra „Atribuie macro la obiect”, în care selectăm „Creați”

După aceea, editorul Visual Basic se va deschide, iar numele procedurii care va fi executată la apăsarea butonului va fi scris automat. Să scriem următorul cod sub numele procedurii:


Codul va face următoarele:

  • MsgBox („Acesta este primul meu Macro!”) - mesaj
  • Variabilei q i se atribuie valoarea celulei pe Sheet1, cu coordonatele 2 rând, 2 coloane
  • Variabilei w i se atribuie valoarea celulei pe Sheet1, cu coordonatele 3 rând, 2 coloane
  • Într-o celulă de pe Foaia1, cu coordonatele 4 rând, 2 coloane, se scrie suma q + w



Apoi, 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:


și obțineți următorul rezultat când faceți clic pe buton:


rezultatul arată că macro-ul a preluat numărul din tabelul de pe Sheet2 în conformitate cu suma noastră.
Nu voi intra în detaliile acestui cod complicat, deoarece scopul acestui articol este să începeți să scrieți macrocomenzi. Există o mulțime de resurse pe Internet pentru VBA, cu exemple și explicații, deși cantitatea de informații din ajutor va fi suficientă pentru automatizarea calculelor.

Astfel, folosind VBA, este posibil să se automatizeze calculul oricărei complexități și secvențe. Tabelele de referință pot fi copiate din diverse documente pe foi Excel separate și pot scrie un calcul secvențial cu butoane.

Subiectul 2.3. Software de prezentare și elemente de bază pentru programarea biroului

Tema 2.4. Sisteme de gestionare a bazelor de date și sisteme expert

2.4.11. Baza de date de formare cu butonul principal formular "Training_students" - Descărcați

Programare VBA și macrocomenzi

2.3. Software de prezentare și elemente de bază pentru programarea biroului

2.3.7. Noțiuni de bază despre programarea biroului

Visual Basic pentru aplicații: Visual Basic pentru aplicații (VBA)

VBA este un subset al limbajului de programare vizual Visual 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; nu poate crea un proiect independent de aplicațiile Office. Astfel, în VBA, limbajul de programare este VB, iar mediul de programare este implementat ca un editor VB, care poate fi activat din orice aplicație MS Office.

De exemplu, pentru a deschide editorul VBA dintr-o aplicație PowerPoint, trebuie să executați comanda Tools / Macro / VBA Editor. Puteți reveni de la editor la aplicație alegând comanda Microsoft PowerPoint din meniul Vizualizare sau apăsând Alt + F11.

Folosind setul de controale și editorul de formulare încorporat în editorul VBA, utilizatorul poate crea o interfață cu utilizatorul pentru proiect cu un formular de afișare. Controalele sunt obiecte și sunt definite o serie de evenimente posibile pentru fiecare obiect (de exemplu, clic cu mouse-ul sau dublu clic, apăsarea tastei, glisarea obiectelor etc.).

Fiecare eveniment se manifestă în anumite acțiuni ale programului (răspunsuri, reacții). Un formular personalizat vă permite să creați casete de dialog ale aplicației. Limbajul de programare VBA este utilizat pentru a scrie codul programului, de exemplu, pentru a crea funcții de utilizator în Excel.

Faptul că sistemul de programare VBA este conceput pentru a funcționa cu obiecte Office îi permite să fie utilizat în mod eficient pentru automatizarea activităților asociate dezvoltării diferitelor tipuri de documente.

Luați în considerare algoritmul pentru crearea funcțiilor utilizatorului în VBA:

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

2. Executați elementul de meniu al editorului Insert / Module (Insert / Module).

3. Apoi executați Insert / Procedure. În fereastra Add Procedure care se deschide, introduceți numele funcției (de exemplu, SUM5) și setați comutatoarele: Tip - în poziția Function; Domeniu de aplicare - setați la Public și faceți clic pe OK.


Figura: 1.

4. În fereastra de editor pentru programarea VBA, va apărea un șablon de funcție: titlul este Public Function SUM5 () și sfârșitul este End Function, între care trebuie să plasați codul corpului funcției.


Figura: 2.

5. În continuare, introducem lista parametrilor funcției, de exemplu, între paranteze indicăm (x, y, z, i, j), tipul de date (pentru calcule precise) și tipul valorii returnate de funcție (nu o vom introduce în acest exemplu). În plus, introducem corpul funcției, de exemplu, SUM5 \u003d x + y + z + i + j. Ca rezultat, obținem următorul text al programului:

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

6. Reveniți la fereastra aplicației Excel, în care, de exemplu, trebuie să adăugăm cinci valori.

7. Executați „Insert / Function” și în fereastra deschisă a expertului de funcții selectați categoria „Definit de utilizator”, iar în fereastra „Selectare funcție” selectați SUM5 și faceți clic pe OK.



Figura: 3.



Figura: 4.

Macrocomenzi

Crearea unei macro

Să creăm o macro care să adauge automat două numere în celulele A1, B1 și să plasăm rezultatul în celula C1 și să completăm celula C1 cu turcoaz.

Algoritm pentru crearea unei macrocomenzi pentru sarcina la îndemână:

1. Selectați Instrumente / Macro, Porniți înregistrarea.

2. În caseta Nume macro, introduceți un nume pentru macro. Primul caracter al unui nume de macro trebuie să fie o literă. Spațiile nu sunt permise în numele macro; Puteți utiliza subliniere ca separatoare de cuvinte.

3. Pentru a rula macro utilizând o comandă rapidă de la tastatură, introduceți o literă în caseta de comenzi rapide de la tastatură. Puteți utiliza CTRL + literă (pentru litere mici) sau CTRL + SHIFT + literă (pentru majuscule), unde litera este orice tastă de literă de pe tastatură. Nu selectați comanda rapidă implicită de la tastatură, deoarece comanda rapidă de la tastatură selectată suprascrie comenzile rapide de la tastatură standard Microsoft Excel în momentul acestui registru de lucru.

4. În caseta „Salvare”, selectați registrul de lucru în care doriți să salvați macro-ul. Salvați macro-ul în această carte. Pentru a crea o scurtă descriere a macro-ului, introduceți textul necesar în câmpul Descriere. Captura de ecran arată un exemplu de completare a casetei de dialog „Înregistrați macro”


Figura: cinci.

5. Faceți clic pe OK.

6. Rulați macrocomenzile pe care doriți să le înregistrați.


Figura: 6.

7. Faceți clic pe butonul Opriți înregistrarea de pe bara de instrumente a sistemului de operare plutitor (Opriți înregistrarea) sau Instrumente / Macro / Opriți macro.

Când terminați de înregistrat o macrocomandă, aceasta apare în lista de macrocomenzi sub numele său.

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



Figura: 7.

Pentru a apela o macro, trebuie să executați comanda Service / Macro / Macros. După aceea, în caseta de dialog cu lista de macrocomenzi, o puteți găsi după nume și faceți clic pe butonul Executare.

Atribuirea unui buton din bara de instrumente pentru a rula o macro

O macrocomandă poate fi lansată folosind un buton de pe bara de instrumente încorporată, pentru aceasta trebuie să rulați:

  1. Selectați elementul Setări din meniul Serviciu.
  2. În caseta de dialog Personalizare, selectați fila Comenzi și selectați opțiunea Macro din lista Categorii și selectați Butonul personalizat din lista Comenzi.
  3. Din lista Comenzi, trageți un buton personalizat pe bara de instrumente.
  4. Faceți clic dreapta pe acest buton și selectați Alocare macro din meniul contextual.
  5. Introduceți un nume pentru macro în câmpul Nume macro.

Atribuirea unei zone de obiect grafic pentru a rula o macro:

  1. Creați un obiect grafic.
  2. Aplicați meniul contextual obiectului grafic selectat.
  3. Selectați comanda Asignare macro din meniul contextual.
  4. În caseta de dialog „Alocare macro obiectului” care apare, introduceți numele macro-ului în câmpul Nume macro, apoi faceți clic pe OK.

Editarea macro este efectuată de editorul VBA, pentru aceasta trebuie să faceți următoarele:

  1. Selectați comanda Service / Macro / Macros.
  2. Selectați numele macro-ului care urmează să fie modificat din lista Nume.
  3. Apăsând butonul Modificare se va deschide o fereastră Visual Basic, în care puteți edita comenzile macro-ului selectat scrise în limbajul Visual Basic.


Ștergerea unei macrocomenzi:

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

Redenumirea unei macrocomenzi

Pentru a redenumi o macro, trebuie să intrați în modul de editare macro și să schimbați titlul din textul programului. Noul nume îl va înlocui automat pe cel vechi din listele de macrocomenzi, iar o macrocomandă cu un nume nou va fi apelată prin tastele de comenzi rapide.

Cu tabele sau alte obiecte Office, există adesea situații în care trebuie să faceți același lucru. Acest lucru nu este doar consumator de timp, ci și foarte enervant. Din fericire, există macrocomenzi pentru a rezolva această problemă.

Macrocomenzile sunt scrise în VBA, dar nu este nevoie să fii programator și să înveți Visual Basic pentru aplicație pentru a afla cum să le scrii. Pentru aceasta, există instrumente special concepute care, la comanda dvs., creează cod VBA fără a necesita cunoștințe suplimentare de la dvs. Cu toate acestea, stăpânirea acestui limbaj nu este atât de dificilă.

Macrocomenzile sunt create în aplicații prin înregistrare. În acest caz, secvența necesară de acțiuni este atribuită unei anumite combinații de taste. Deschideți o aplicație Office. Selectați fragmentul de formatat.

Selectați elementul de meniu „Instrumente” -\u003e „Macro” -\u003e „Începeți înregistrarea” (în Office 2007 - „Vizualizare” -\u003e „Macro” -\u003e „Înregistrați macro”). În fereastra „Record Macro” care apare, specificați numele noii macro-uri, în mod implicit este „Macro1”, dar este mai bine să îi dați un nume, mai ales dacă există mai multe macrocomenzi. Dimensiunea maximă a câmpului de nume este de 255 de caractere, caracterele de punct și spațiu nu sunt permise.

Decideți alegerea unui buton sau a unei combinații de taste prin care macroul dvs. va funcționa în viitor. Încercați să găsiți cea mai convenabilă opțiune, mai ales dacă este destinată utilizării frecvente. Selectați elementul corespunzător în câmpul „Alocare macro”: „buton” sau „taste”.

Dacă ați selectat „buton”, se va deschide fereastra „Setări rapide”. Atunci când alegeți „taste”, trebuie doar să introduceți o combinație pe tastatură. Examinați combinațiile curente pentru a evita repetarea. Faceți clic pe Alocare.

O macro creată în Word și PowerPoint va funcționa pentru toate documentele în viitor. Pentru a face macro-ul disponibil în Excel pentru toate documentele, salvați-l în fișierul personal.xls, care rulează automat când deschideți aplicația. Rulați comanda „Window” -\u003e „Display” și selectați linia cu numele fișierului personal.xls în fereastra care apare.

Introduceți o descriere pentru macro în câmpul Descriere. Faceți clic pe OK și veți reveni la documentul dvs., dar acum puteți vedea pictograma înregistrare pe cursorul mouse-ului. Formatați textul cu secvența de pași 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 va afecta calendarul execuției sale în viitor.

Rulați comanda „Instrumente” -\u003e „Macro” -\u003e „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 „Macro”, prin comanda „Modificare” sau prin comanda rapidă de la tastatură Alt + F8.

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

De exemplu, o macrocomandă auto-scrisă poate fi atașată la o pictogramă și afișată pe panglică. Sau puteți crea o funcție definită de utilizator (UDF) și o puteți folosi la fel ca restul funcțiilor încorporate Excel.

O macro este un cod de computer scris pentru Excel în limbajul de programare Visual Basic for Applications (VBA). Conceptele de bază ale limbajului de programare VBA sunt tratate pe site-ul nostru în Tutorialul VBA. Cu toate acestea, înainte de a începe să scrieți codul VBA, vă recomandăm să citiți tutorialele despre Excel Macro Security și Editorul Visual Basic.

Setarea permisiunii pentru utilizarea macrocomenzilor în Excel

Excel oferă protecție încorporată împotriva virușilor care pot intra în computerul dvs. prin intermediul macrocomenzilor. Dacă doriți să rulați o macro într-un registru de lucru Excel, asigurați-vă că setările de securitate sunt corecte.

Editor Visual Basic

Înregistrarea macro-urilor

Macro Recorder-ul Excel este o modalitate excelentă de a efectua în mod eficient sarcini simple, 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.

Puteți înregistra rapid o macro pentru a automatiza sarcini repetitive în Microsoft Excel. Să presupunem că aveți date într-un format diferit și doriți să aplicați același format tuturor. Acest lucru se poate face folosind o macro. Puteți înregistra o macrocomandă care aplică formatul dorit și apoi rulați-o după cum este necesar.

Când înregistrați o macrocomandă, aceasta înregistrează 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 pe panglică sau meniuri, formatarea celulelor, rândurilor sau coloanelor și importarea datelor dintr-o sursă externă, cum ar fi Microsoft Access. Aplicația Visual Basic (VBA) este un subset al puternicului limbaj de programare Visual Basic inclus în majoritatea aplicațiilor Office. Deși VBA oferă posibilitatea de a automatiza procesele între aplicațiile Office, nu este nevoie să știți codul VBA sau programarea, dacă este necesar.

Este important să știți că aproape tot ceea ce faceți este înregistrat atunci când înregistrați o macro. Prin urmare, dacă faceți o greșeală, cum ar fi făcând clic pe butonul greșit, macro recorderul va înregistra acțiunea respectivă. În acest caz, puteți rescrie î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 macro-ul va funcționa mai eficient.

Dezvoltatorcare este ascuns în mod implicit, deci trebuie mai întâi să îl activați. Pentru mai multe informații, consultați articolul Afișarea filei pentru dezvoltatori.

Înregistrare macro

În filă Dezvoltator clic Macrocomenzipentru a vizualiza macro-urile asociate cărții. Alternativ, puteți apăsa tastele ALT + F8... Aceasta va deschide o casetă de dialog Macro.


Atenţie:

Aflați despre parametrii de securitate ai macro-urilor și despre semnificația acestora.

Macro-urile pot fi rulate într-o varietate de moduri, cum ar fi folosind o comandă rapidă de la tastatură, un obiect grafic, bara de instrumente cu acces rapid, buton sau chiar la deschiderea unei cărți.

Folosind Editorul Visual Basic, puteți edita macrocomenzile atașate la registrul de lucru.

    atribuiți o macro.

    În câmp Alocați o macro

Aflați cum să activați și să dezactivați macro-urile în fișierele Office.

Apăsați tastele ALT + F11.

Lucrul cu codul înregistrat în Visual Basic Editor (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 îl acceptă. Deoarece macro recorderul surprinde aproape fiecare pas pe care îl faceți în timpul înregistrării, este posibil să fie necesar să eliminați codul inutil. Revizuirea codului înregistrat este o modalitate excelentă de a învăța cum să programați în VBA sau să vă perfecționați abilitățile.

Pentru un exemplu de modificare a codului înregistrat, consultați Introducere în VBA în Excel.

Înregistrare macro

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

    O macro scrisă pentru a funcționa cu un interval Excel va rula numai pe celulele din intervalul respectiv. Prin urmare, dacă adăugați o linie nouă la interval, macro-ul nu se va aplica acestuia.

    Dacă trebuie să înregistrați o succesiune lungă de sarcini, vă recomandăm să utilizați în schimb câteva macrocomenzi mai mici.

    Macro poate conține, de asemenea, activități care nu sunt legate de 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 al trimite prin e-mail.

Macro-urile și instrumentele VBA se află în filă Dezvoltatorcare este ascuns în mod implicit, deci trebuie mai întâi să îl activați.

    Accesați Setări\u003e excela... Bara de instrumente &\u003e Panglici.

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

Lucrul cu macrocomenzi înregistrate în Excel

În filă Dezvoltator clic Macrocomenzipentru a vizualiza macro-urile asociate cărții. Aceasta va deschide o casetă de dialog Macro.

Notă: Macrocomenzile nu pot fi anulate. Înainte de a rula macrocomanda î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 macro-ului, puteți închide registrul de lucru fără a-l salva.

Vedeți mai jos pentru mai multe informații despre lucrul cu macrocomenzi în Excel.

Aflați cum să activați și să dezactivați macrocomenzile în Excel pentru Mac.

Dacă registrul de lucru conține o macrocomandă VBA pe care doriți să o utilizați în altă parte, puteți copia modulul într-un alt registru de lucru folosind Microsoft Visual Basic Editor.

Atribuirea unei macro unui obiect, formă sau grafic

    Pe foaie, faceți clic dreapta pe obiectul, imaginea, forma sau elementul căruia doriți să îi atribuiți o macro existentă, apoi faceți clic pe atribuiți o macro.

    În câmp Alocați o macro selectați macrocomanda pe care doriți să o atribuiți.

Puteți atribui o macro unei pictograme și o puteți adăuga la Bara de instrumente cu acces rapid sau la panglică.

Puteți atribui macrocomenzi pentru formulare și controale ActiveX pe o foaie.

Deschiderea Editorului Visual Basic

În filă Dezvoltator clic Visual Basic sau selectați Serviciu > Macro > Editor Visual Basic.

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

informatii suplimentare

Puteți oricând să puneți o întrebare comunității Excel Tech, să cereți ajutor în comunitatea Answers sau să sugerați o nouă funcție sau îmbunătățire pe site.

Imparte asta