Una dintre cele mai puternice, dar rareori utilizate funcții ale Excel este abilitatea de a crea foarte ușor sarcini automate și logică personalizată în cadrul macro-urilor. Macroanele oferă o modalitate ideală de a economisi timp pe sarcini previzibile, repetitive, precum și de a standardiza formatele de documente - de multe ori fără a fi nevoie să scrieți o singură linie de cod.
Dacă sunteți curioși ce macro-uri sunt sau cum să le creați de fapt, nici o problemă - vă vom trece prin întregul proces.
Notă:același proces ar trebui să funcționeze în majoritatea versiunilor de Microsoft Office. Capturile de ecran ar putea părea puțin diferite.
O macrocomandă Microsoft Office (deoarece această funcționalitate se aplică mai multor aplicații MS Office) este doar codul Visual Basic for Applications (VBA) salvat într-un document. Pentru o analogie comparabilă, gândiți-vă la un document ca HTML și la o macrocomandă ca Javascript. În mare măsură în același mod în care Javascript poate manipula HTML într-o pagină web, o macrocomandă poate manipula un document.
Macroanele sunt incredibil de puternice și pot face aproape orice vă poate imagina imaginația. Ca o (foarte) scurtă listă de funcții pe care le puteți face cu o macrocomandă:
Începem cu fișierul CSV pentru grădină. Nimic special aici, doar un set de 10 × 20 de numere între 0 și 100, atât cu antetul rândului cât și cu coloana. Scopul nostru este de a produce o fișă de date bine formatată și prezentabilă, care să includă rezumate sumare pentru fiecare rând.
După cum am arătat mai sus, o macrocomandă este cod VBA, dar unul dintre lucrurile frumoase despre Excel este că le puteți crea / înregistra cu zero codare necesară - așa cum o vom face aici.
Pentru a crea o macrocomandă, accesați Vizualizare> Macroare> Înregistrare macro.
Atribuiți macrocomenzii un nume (fără spații) și faceți clic pe OK.
Odată ce acest lucru este făcut, toate din acțiunile dvs. sunt înregistrate - fiecare schimbare de celule, acțiunea de defilare, redimensionarea ferestrei, numele dvs.
Există câteva locuri care indică faptul că Excel este modul de înregistrare. Unul este vizualizarea meniului Macro și notarea că opțiunea Înregistrare oprită a înlocuit opțiunea pentru Înregistrare macro.
Celălalt este în colțul din dreapta jos. Pictograma "stop" indică faptul că este în modul macro și apăsând aici se va opri înregistrarea (de asemenea, atunci când nu este în modul înregistrare, această pictogramă va fi butonul Înregistrare macro, pe care îl puteți utiliza în loc să mergeți la meniul Macrocomenzi).
Acum, când înregistrăm macro-ul nostru, să aplicăm calculele sumare. Mai întâi adăugați anteturile.
Apoi, aplicați formulele corespunzătoare (respectiv):
Acum, evidențiați toate celulele de calcul și trageți lungimea tuturor rândurilor de date pentru a aplica calculele pentru fiecare rând.
Odată ce acest lucru este făcut, fiecare rând ar trebui să afișeze rezumatele lor respective.
Acum, vrem să obținem datele de sinteză pentru întreaga foaie, deci aplicăm câteva calcule:
Respectiv:
Acum, când se fac calculele, vom aplica stilul și formatarea. Mai întâi aplicați formatarea numărului general în toate celulele făcând o selecție All (fie Ctrl + A, fie faceți clic pe celula dintre anteturile rândului și coloanei) și selectați pictograma "Comma Style" din meniul Home.
Apoi, aplicați unele formatări vizuale atât la antetele rândului cât și la coloane:
Și în cele din urmă, aplicați un anumit stil totalurilor.
Când totul este terminat, aceasta este foaia noastră de date:
Deoarece suntem mulțumiți de rezultate, opriți înregistrarea macrocomenzii.
Felicitări - tocmai ați creat o macrocomandă Excel.
Pentru a folosi macroul nou înregistrat, trebuie să salvăm fișierele noastre de lucru Excel într-un format de fișiere cu funcție macro. Cu toate acestea, înainte de a face acest lucru, trebuie mai întâi să ștergem toate datele existente, astfel încât să nu fie încorporate în șablonul nostru (ideea fiind de fiecare dată când folosim acest șablon, vom importa cele mai actualizate date).
Pentru aceasta, selectați toate celulele și ștergeți-le.
Odată cu ștergerea datelor (dar macrocomenzile care sunt încă incluse în fișierul Excel), dorim să salvăm fișierul ca fișier șablon de tip macro (XLTM). Este important să rețineți că, dacă salvați acest fișier ca fișier standard (XLTX), atunci macrocomenzile o vor face nu să poată fi condus de la el. Alternativ, puteți salva fișierul ca fișier șablon legacy (XLT), care va permite rularea macrocomenzilor.
Odată ce ați salvat fișierul ca șablon, continuați și închideți Excel.
Înainte de a acoperi modul în care putem aplica această macrocomandă recent înregistrată, este important să acoperim câteva puncte despre macrocomenzi în general:
Codul VBA este de fapt destul de puternic și poate manipula fișiere în afara domeniului de aplicare al documentului curent. De exemplu, o macrocomandă ar putea modifica sau șterge fișiere aleatorii în folderul Documentele mele. Ca atare, este important să vă asigurați că sunteți numai rulați macro-uri din surse de încredere.
Pentru a folosi macroul format al datelor, deschideți fișierul Excel Template creat mai sus. Când faceți acest lucru, presupunând că aveți setările standard de securitate activate, veți vedea un avertisment în partea de sus a listei de lucru, care spune că macrocomenzile sunt dezactivate. Pentru că avem încredere în o macrocomandă creată de noi înșine, faceți clic pe butonul "Activați conținutul".
În continuare, vom importa ultimul set de date dintr-un CSV (aceasta este sursa foaia de lucru utilizată pentru a crea macrocomanda noastră).
Pentru a finaliza importul fișierului CSV, poate fi necesar să setați câteva opțiuni pentru ca Excel să îl interpreteze corect (de exemplu delimiter, anteturi prezente etc.).
Odată ce datele noastre sunt importate, mergeți pur și simplu la meniul Macrocomenzi (în fila Vizualizare) și selectați Vizualizare macrocomenzi.
În caseta de dialog rezultată, vedem macrocomanda "FormatData" pe care am înregistrat-o mai sus. Selectați-l și faceți clic pe Executare.
Odată ce ați rulat, este posibil să vedeți saltul cursorului în jur pentru câteva momente, dar pe măsură ce veți vedea datele pe care le manipulați exact așa cum am înregistrat-o. Când totul este spus și făcut, ar trebui să arate exact ca originalul nostru - cu excepția datelor diferite.
Așa cum am menționat de câteva ori, o macrocomandă este condusă de codul Visual Basic for Applications (VBA). Când "înregistrați" o macrocomandă, Excel traduce de fapt tot ceea ce faceți în instrucțiunile sale VBA respective. Pentru a spune pur și simplu - nu trebuie să scrieți niciun cod deoarece Excel scrie codul pentru dvs.
Pentru a vedea codul care face ca macrocomanda să ruleze, din dialogul Macro, dă click pe butonul Editare.
Fereastra care se deschide afișează codul sursă care a fost înregistrat din acțiunile noastre la crearea macrocomenzii. Desigur, puteți să editați acest cod sau chiar să creați macrocomenzi noi complet în interiorul ferestrei de cod. În timp ce acțiunea de înregistrare folosită în acest articol va corespunde probabil celor mai multe nevoi, acțiuni mai personalizate sau acțiuni condiționate ar necesita editarea codului sursă.
Din punct de vedere ipotetic, presupunem că fișierul nostru de date sursă, data.csv, este produs printr-un proces automatizat care salvează întotdeauna fișierul în aceeași locație (de exemplu, C: \ Data \ data.csv este întotdeauna cele mai recente date). Procesul de deschidere a acestui fișier și de import al acestuia se poate face cu ușurință și într-o macrocomandă:
Odată ce acest lucru este făcut, ori de câte ori șablonul este deschis, vor exista două macro-uri - una care încarcă datele noastre și cealaltă care o formatează.
Dacă doriți cu adevărat să vă murdăriți mâinile cu puțină editare de cod, puteți combina cu ușurință aceste acțiuni într-o singură macrocomandă prin copierea codului produs de "LoadData" și inserarea acestuia la începutul codului din "FormatData".
Pentru comoditatea dvs., am inclus atât șablonul Excel produs în acest articol, cât și un fișier de date de probă pentru a vă juca.
Descărcați Excel Macro Template de la How-To Geek