Cuprins
Tutorial pas cu pas pentru începători pentru a înregistra, vizualiza, rula și salva o macro. Veți învăța, de asemenea, câteva mecanisme interne ale modului în care funcționează macrourile în Excel.
Macro-urile sunt o modalitate excelentă de a automatiza sarcinile repetitive în Excel. Dacă vă aflați făcând aceleași lucruri de nenumărate ori, înregistrați mișcările ca macro și atribuiți-i o comandă rapidă de la tastatură. Și acum, puteți face ca toate acțiunile înregistrate să fie executate automat, cu o singură apăsare de tastă!
Cum să înregistrați o macro în Excel
La fel ca și alte instrumente VBA, macrourile Excel se află pe Dezvoltator care este ascunsă în mod implicit. Așadar, primul lucru pe care trebuie să îl faceți este să adăugați fila Dezvoltator la panglica Excel.
Pentru a înregistra o macro în Excel, efectuați următorii pași:
- Pe Dezvoltator în fila Cod grup, faceți clic pe butonul Macro de înregistrare buton.
Alternativ, faceți clic pe butonul Macro de înregistrare din partea stângă a ecranului Stare bar:
Dacă preferați să lucrați cu tastatura în locul mouse-ului, apăsați următoarea secvență de taste Alt , L , R (una câte una, nu toate tastele deodată).
- În Macro de înregistrare în caseta de dialog care apare, configurați principalii parametri ai macrocomenzii dvs:
- În Macro nume încercați să introduceți un nume pentru macroul dvs. Încercați să fie semnificativ și descriptiv, astfel încât mai târziu să puteți găsi rapid macroul în listă.
În numele macro, puteți folosi litere, numere și caractere de subliniere; primul caracter trebuie să fie o literă. Spațiile nu sunt permise, așa că ar trebui fie să păstrați un nume cu un singur cuvânt, începând fiecare parte cu o literă majusculă (de ex. MyFirstMacro ) sau separați cuvintele prin sublinieri (de exemplu Prima_Macro a mea ).
- În Tastă de comandă rapidă tastați orice literă pentru a atribui o comandă rapidă de la tastatură la macro (opțional).
Sunt permise atât majusculele, cât și minusculele, dar ar fi înțelept să folosiți combinații de taste majuscule ( Ctrl + Shift + literă ), deoarece comenzile rapide ale macrocomenzilor înlocuiesc orice comenzi rapide implicite din Excel în timp ce registrul de lucru care conține macroul este deschis. De exemplu, dacă atribuiți Ctrl + S unei macro, veți pierde posibilitatea de a salva fișierele Excel cu o comandă rapidă. Atribuirea Ctrl + Shift + S va menținescurtătură standard de salvare.
- De la Stocați macroul în lista derulantă, alegeți locul în care doriți să stocați macroul:
- Caietul de lucru Macro Personal - stochează macroul într-un registru de lucru special numit Personal.xlsb Toate macrourile stocate în acest registru de lucru sunt disponibile ori de câte ori utilizați Excel.
- Acest caiet de lucru (implicit) - macroul va fi stocat în registrul de lucru curent și va fi disponibil atunci când redeschideți registrul de lucru sau îl partajați cu alți utilizatori.
- Noua carte de lucru - creează un nou registru de lucru și înregistrează macroul în acel registru de lucru.
- În Descriere tastați o scurtă descriere a ceea ce face macroul dumneavoastră (opțional).
Deși acest câmp este opțional, vă recomand să furnizați întotdeauna o scurtă descriere. Atunci când creați o mulțime de macro-uri diferite, aceasta vă va ajuta să înțelegeți rapid ce face fiecare macro.
- Faceți clic pe OK pentru a începe înregistrarea macrocomenzii.
- În Macro nume încercați să introduceți un nume pentru macroul dvs. Încercați să fie semnificativ și descriptiv, astfel încât mai târziu să puteți găsi rapid macroul în listă.
- Efectuați acțiunile pe care doriți să le automatizați (consultați exemplul de macro de înregistrare).
- Când ați terminat, faceți clic pe butonul Opriți înregistrarea de pe butonul Dezvoltator tab:
Sau butonul analog de pe Stare bar:
Exemplu de înregistrare a unei macro în Excel
Pentru a vedea cum funcționează în practică, să înregistrăm o macro care să aplice o formatare în celulele selectate. Pentru aceasta, procedați după cum urmează:
- Selectați una sau mai multe celule pe care doriți să le formatați.
- Pe Dezvoltator fila sau Stare bară, faceți clic pe Macro de înregistrare .
- În Macro de înregistrare configurați următoarele setări:
- Numește macroul Formatarea antetului (pentru că vom formata antetele de coloană).
- Așezați cursorul în caseta Tastă de comandă rapidă și apăsați simultan tastele Shift + F. Acest lucru va atribui prescurtarea Ctrl + Shift + F la macro.
- Alegeți să stocați macroul în acest registru de lucru.
- Pentru Descriere , utilizați următorul text care explică ce face macroul: Face ca textul să fie bold, adaugă culoare de umplere și centrează .
- Faceți clic pe OK pentru a începe înregistrarea.
- Formatați celulele preselectate așa cum doriți. Pentru acest exemplu, folosim formatarea textului în bold, culoarea de umplere albastru deschis și alinierea centrală.
Sfat: Nu selectați nicio celulă după ce ați început să înregistrați macroul. Acest lucru va asigura faptul că toate aplicațiile de formatare se aplică la selecție , nu un anumit interval.
- Faceți clic pe Opriți înregistrarea fie pe Dezvoltator sau fila Stare bar.
Gata, macroul dvs. a fost înregistrat. Acum, puteți selecta orice interval de celule din orice foaie, apăsați comanda rapidă atribuită ( Ctrl+ Shift + F ), iar formatarea dvs. personalizată va fi aplicată imediat celulelor selectate.
Cum să lucrați cu macro-uri înregistrate în Excel
Toate opțiunile principale pe care Excel le oferă pentru macro-uri pot fi accesate prin intermediul butonului Macro Pentru a o deschide, faceți clic pe caseta de dialog Macros de pe butonul Dezvoltator sau apăsați comanda rapidă Alt+ F8.
În caseta de dialog care se deschide, puteți vizualiza o listă de macro-uri disponibile în toate registrele de lucru deschise sau asociate unui anumit registru de lucru și puteți utiliza următoarele opțiuni:
- Rulați - execută macroul selectat.
- Pășește în - vă permite să depanați și să testați macroul în Visual Basic Editor.
- Editați - deschide macroul selectat în VBA Editor, unde puteți vizualiza și edita codul.
- Ștergeți - șterge definitiv macroul selectat.
- Opțiuni - permite modificarea proprietăților macroului, cum ar fi Comenzi rapide cheie și Descriere .
Cum se vizualizează macrourile în Excel
Codul unei macro Excel poate fi vizualizat și modificat în Editorul Visual Basic. Pentru a deschide Editorul, apăsați Alt + F11 sau faceți clic pe butonul Visual Basic de pe butonul Dezvoltator tab.
Dacă vedeți editorul VB pentru prima dată, vă rugăm să nu vă simțiți descurajat sau intimidat. Nu vom vorbi despre structura sau sintaxa limbajului VBA. Această secțiune vă va oferi doar o înțelegere de bază a modului în care funcționează macrogramele Excel și ce face de fapt înregistrarea unei macrograme.
Editorul VBA are mai multe ferestre, dar ne vom concentra asupra celor două ferestre principale:
Proiect Explorer - afișează o listă cu toate registrele de lucru deschise și foile acestora. În plus, afișează modulele, formularele utilizatorului și modulele de clasă.
Fereastra de cod - aici puteți vizualiza, edita și scrie cod VBA pentru fiecare obiect afișat în Project Explorer.
Când am înregistrat macroul de probă, în backend s-au produs următoarele lucruri:
- Un nou modul ( Moduel1 ) a fost introdus.
- Codul VBA al macrocomenzii a fost scris în fereastra Code.
Pentru a vedea codul unui anumit modul, faceți dublu clic pe modul ( Modul1 în cazul nostru) în fereastra Project Explorer. În mod normal, un cod macro are următoarele părți:
Numele macroului
În VBA, orice macro începe cu Sub urmat de numele macro și se termină cu End Sub , unde "Sub" este prescurtarea de la Subrutină (numit și Procedura ). Macroul nostru de probă se numește Formatarea antetului() , deci codul începe cu această linie:
Sub Header_Formatting()Dacă doriți să redenumiți macroul , ștergeți pur și simplu numele curent și introduceți unul nou direct în fereastra Code.
Comentarii
Liniile prefixate cu un apostrof (') și afișate în verde în mod implicit nu sunt executate. Acestea sunt comentarii adăugate în scop informativ. Liniile de comentariu pot fi eliminate în siguranță fără a afecta funcționalitatea codului.
De obicei, o macro înregistrată are 1 - 3 linii de comentarii: numele macro (obligatoriu); descrierea și comanda rapidă (dacă este specificată înainte de înregistrare).
Cod executabil
După comentarii, urmează codul care execută acțiunile pe care le-ați înregistrat. Uneori, un macro înregistrat poate avea o mulțime de cod superfluu, care poate fi totuși util pentru a afla cum funcționează lucrurile cu VBA :)
Imaginea de mai jos arată ce face fiecare parte a codului macroului nostru:
Cum se execută o macro înregistrată
Prin rularea unui macro, îi spuneți lui Excel să se întoarcă la codul VBA înregistrat și să execute exact aceiași pași. Există câteva moduri de a rula un macro înregistrat în Excel, iar aici sunt cele mai rapide:
- Dacă ați atribuit un scurtătură de la tastatură la macro, apăsați comanda rapidă respectivă.
- Apăsați Alt + 8 sau faceți clic pe butonul Macros de pe butonul Dezvoltator În fila Macro caseta de dialog, selectați macroul dorit și faceți clic pe Rulați .
De asemenea, este posibil să rulați o macro înregistrată făcând clic pe propriul buton. Iată pașii pentru a face unul: Cum se creează un buton macro în Excel.
Cum se salvează macrourile în Excel
Indiferent dacă ați înregistrat un macro sau ați scris manual codul VBA, pentru a salva macroul, trebuie să salvați registrul de lucru ca fiind activat ca macro (extensia .xlms). Iată cum:
- În registrul de lucru care conține macroul, faceți clic pe butonul Salvați sau apăsați Ctrl + S .
- În Salvați ca caseta de dialog, alegeți Caietul de lucru cu macrouri Excel (*.xlsm) de la Salvați ca tip lista derulantă, apoi faceți clic pe Salvați :
Macros Excel: ce este și ce nu este înregistrat
După cum tocmai ați văzut, este destul de ușor să înregistrați o macro în Excel. Dar pentru a crea macro-uri eficiente, trebuie să înțelegeți ce se întâmplă în spatele scenei.
Ce se înregistrează
Înregistratorul de macrouri al Excel captează destul de multe lucruri - aproape toate clicurile de mouse și apăsările de taste. Așadar, trebuie să vă gândiți cu atenție la pașii pe care îi faceți pentru a evita excesul de cod care poate duce la un comportament neașteptat al macroului dvs. Mai jos sunt câteva exemple de ceea ce înregistrează Excel:
- Selectarea celulelor cu ajutorul mouse-ului sau al tastaturii. Se înregistrează numai ultima selecție înainte de o acțiune. De exemplu, dacă selectați intervalul A1:A10 și apoi faceți clic pe celula A11, se va înregistra numai selecția din A11.
- Formatarea celulelor, cum ar fi umplerea și culoarea fontului, alinierea, marginile etc.
- Formatarea numerelor, cum ar fi procentajul, moneda etc.
- Editarea formulelor și a valorilor. Modificările sunt înregistrate după ce apăsați Enter .
- Derularea, deplasarea ferestrelor Excel, trecerea la alte foi de lucru și registre de lucru.
- Adăugarea, numirea, mutarea și ștergerea foilor de lucru.
- Crearea, deschiderea și salvarea registrelor de lucru.
- Rularea altor macrocomenzi.
Ce nu poate fi înregistrat
În ciuda numeroaselor lucruri diferite pe care Excel le poate înregistra, anumite caracteristici depășesc capacitățile Macro Recorder:
- Personalizări ale panglicii Excel și ale barei de instrumente Acces rapid.
- Acțiuni în interiorul dialogurilor Excel, cum ar fi Formatarea condiționată sau Găsiți și înlocuiți (se înregistrează doar rezultatul).
- Interacțiuni cu alte programe. De exemplu, nu puteți înregistra copy/pasting dintr-un registru de lucru Excel într-un document Word.
- Orice lucru care implică editorul VBA. Acest lucru impune cele mai semnificative limitări - multe lucruri care pot fi făcute la nivel de programare nu pot fi înregistrate:
- Crearea de funcții personalizate
- Afișarea de casete de dialog personalizate
- Efectuarea de bucle, cum ar fi Pentru Următorul , Pentru fiecare , Do While , etc.
- Evaluarea condițiilor. În VBA, puteți utiliza funcția IF Then Else pentru a testa o condiție și a rula un cod dacă condiția este adevărată sau un alt cod dacă condiția este falsă.
- Executarea codului pe baza evenimentelor. Cu VBA, puteți utiliza mai multe evenimente pentru a executa un cod asociat cu acel eveniment (cum ar fi deschiderea unui registru de lucru, recalcularea unei foi de calcul, modificarea selecției și așa mai departe).
- Utilizarea argumentelor. Atunci când scrieți o macro în VBA Editor, puteți furniza argumente de intrare pentru ca o macro să efectueze o anumită sarcină. O macro înregistrată nu poate avea argumente deoarece este independentă și nu este conectată la alte macro-uri.
- Înțelegerea logicii. De exemplu, dacă înregistrați o macro care copiază anumite celule, de exemplu în Total rând, Excel va înregistra doar adresele celulelor copiate. Cu ajutorul VBA, puteți codifica logica, adică să copiați valorile din Total rând.
Deși limitările de mai sus stabilesc multe limite pentru macro-urile înregistrate, ele reprezintă totuși un bun punct de plecare. Chiar dacă nu aveți nicio idee despre limbajul VBA, puteți înregistra rapid o macro și apoi să-i analizați codul.
Sfaturi utile pentru înregistrarea macrourilor în Excel
Mai jos veți găsi câteva sfaturi și note care vă pot economisi mult timp și nervi, făcând curba de învățare mai ușoară și macrourile mai eficiente.
Utilizați referințe relative pentru înregistrarea macro
În mod implicit, Excel utilizează absolut referințe pentru a înregistra o macro. Aceasta înseamnă că codul VBA se va referi întotdeauna la exact aceleași celule pe care le-ați selectat, indiferent de locul în care vă aflați în foaia de calcul atunci când executați macroul.
Cu toate acestea, este posibil să se schimbe comportamentul implicit la referențiere relativă În acest caz, VBA nu va codifica adresele celulelor, ci va lucra în raport cu celula activă (selectată în acel moment).
Pentru a înregistra o macro cu referințe relative, faceți clic pe butonul Utilizați Referințe relative de pe butonul Dezvoltator Pentru a reveni la referința absolută, faceți clic din nou pe buton pentru a-l dezactiva.
De exemplu, dacă înregistrați configurarea unui tabel cu referința absolută implicită, macroul dvs. va recrea întotdeauna tabelul în același loc (în acest caz, Antet în A1, Articolul 1 în A2, Articolul 2 în A3).
Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Header" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Item1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Item2" End Sub
Dacă înregistrați aceeași macro cu referențiere relativă, tabelul va fi creat oriunde ați plasat cursorul înainte de a rula macroul ( Antet în celula activă, Articolul 1 în celula de mai jos, și așa mai departe).
Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End SubNote:
- Atunci când utilizați referințe relative, asigurați-vă că selectați celula inițială înainte de a începe să înregistrați o macro.
- Referințele relative nu funcționează pentru orice. Unele funcții Excel, de exemplu, convertirea unui interval într-un tabel, necesită referințe absolute.
Selectați intervale utilizând comenzi rapide de la tastatură
Atunci când selectați o celulă sau un interval de celule cu ajutorul mouse-ului sau al tastelor săgeată, Excel scrie adresele celulelor. În consecință, ori de câte ori executați o macro, operațiile înregistrate vor fi efectuate exact pe aceleași celule. Dacă nu este ceea ce doriți, utilizați scurtături pentru selectarea celulelor și a intervalelor.
Ca exemplu, să înregistrăm o macro care stabilește un format specific (d-mmm-yy) pentru datele din tabelul de mai jos:
Pentru aceasta, înregistrați următoarele operații: apăsați Ctrl + 1 pentru a deschide fereastra Formatarea celulelor dialog> Date> choose format> OK. Dacă înregistrarea include selectarea intervalului cu mouse-ul sau cu tastele săgeată, Excel va produce următorul cod VBA:
Sub Date_Format() Range( "A2:B4" ). Select Selection.NumberFormat = "d-mmm-yy" End SubRularea macroului de mai sus ar selecta de fiecare dată intervalul A2:B4. Dacă adăugați mai multe rânduri în tabel, acestea nu vor fi procesate de macro.
Acum, să vedem ce se întâmplă atunci când selectați tabelul folosind o comandă rapidă.
Așezați cursorul în celula din stânga sus a intervalului țintă (A2 în acest exemplu), începeți înregistrarea și apăsați Ctrl + Shift + End . Ca rezultat, prima linie de cod va arăta astfel:
Range(Selection, ActiveCell.SpecialCells(xlLastCell)). SelectAcest cod selectează toate celulele de la celula activă până la ultima celulă utilizată, ceea ce înseamnă că toate datele noi vor fi incluse automat în selecție.
Alternativ, puteți utiliza combinațiile Ctrl + Shift + Săgeți:
- Ctrl + Shift + Săgeată dreapta pentru a selecta toate celulele folosite în dreapta, urmată de
- Ctrl + Shift + Săgeată în jos pentru a selecta toate celulele folosite în jos.
Acest lucru va genera două linii de cod în loc de una, dar rezultatul va fi același - toate celulele cu date în jos și în dreapta celulei active vor fi selectate:
Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). SelectÎnregistrați o macro pentru selecție și nu pentru celule specifice
Metoda de mai sus (adică selectarea tuturor celulelor utilizate începând cu celula activă) funcționează foarte bine pentru a efectua aceleași operații pe întregul tabel. Cu toate acestea, în unele situații, este posibil să doriți ca macroul să proceseze un anumit interval și nu întregul tabel.
Pentru aceasta, VBA oferă funcția Selecție care se referă la celula (celulele) selectată(e) în mod curent. Majoritatea lucrurilor care pot fi făcute cu un interval, pot fi făcute și cu o selecție. Ce avantaj vă oferă? În multe cazuri, nu este nevoie să selectați nimic în timpul înregistrării - scrieți doar o macro pentru celula activă. Apoi, selectați orice interval doriți, rulați macroul și acesta va manipula întreaga selecție.
De exemplu, această macro cu o singură linie poate formata orice număr de celule selectate ca procente:
Sub Percent_Format() Selection.NumberFormat = "0.00%" End SubPlanificați cu atenție ceea ce înregistrați
Microsoft Excel Macro Recorder captează aproape toată activitatea dvs., inclusiv greșelile pe care le faceți și le corectați. De exemplu, dacă apăsați Ctrl + Z pentru a anula ceva, acest lucru va fi, de asemenea, înregistrat. În cele din urmă, s-ar putea să vă treziți cu o mulțime de cod inutil. Pentru a evita acest lucru, fie editați codul în editorul VB, fie opriți înregistrarea, ștergeți o macro deficientă și începeți înregistrarea din nou.
Efectuați o copie de rezervă sau salvați registrul de lucru înainte de a rula o macro
Rezultatul macrocomenzilor Excel nu poate fi anulat. Prin urmare, înainte de prima execuție a unei macrocomenzi, este logic să creați o copie a registrului de lucru sau cel puțin să salvați munca curentă pentru a preveni modificări neașteptate. Dacă macrocomenzile fac ceva greșit, închideți pur și simplu registrul de lucru fără a salva.
Păstrați macro-urile înregistrate scurte
Atunci când automatizați o secvență de sarcini diferite, ați putea fi tentat să le înregistrați pe toate într-o singură macro. Există două motive principale pentru a nu face acest lucru. În primul rând, este dificil să înregistrați o macro lungă fără greșeli. În al doilea rând, macrourile mari sunt dificil de înțeles, de testat și de depanat. Prin urmare, este o idee bună să împărțiți o macro mare în mai multe părți. De exemplu, atunci când creați un tabel recapitulativdin mai multe surse, puteți utiliza o macro pentru a importa informații, o alta pentru a consolida datele și o a treia pentru a formata tabelul.
Sper că acest tutorial v-a oferit câteva informații despre cum să înregistrați o macro în Excel. Oricum, vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!