What is a macro cycle?

Automatizează Excel cu Macro-uri VBA

18/08/2021

Rating: 4.5 (5869 votes)

În lumea dinamică a datelor și a rapoartelor, Microsoft Excel rămâne un instrument indispensabil. Cu toate acestea, sarcinile repetitive pot deveni consumatoare de timp și predispuse la erori. Aici intervin macro-urile VBA, oferind o soluție puternică pentru a automatiza procese, a extinde funcționalitatea Excel-ului și a crește semnificativ productivitatea. Acest ghid detaliază tot ce trebuie să știi despre macro-urile VBA, de la înțelegerea conceptelor de bază până la crearea și gestionarea lor eficientă, cu exemple practice care te vor ajuta să devii mai productiv și să depășești limitele obișnuite ale Excel-ului.

What is a microcycle training program?

Vom explora cum poți folosi Visual Basic for Applications (VBA) pentru a crea soluții personalizate, indiferent dacă ești un începător care dorește să înregistreze primele sale macro-uri sau un utilizator avansat care vrea să scrie cod complex. Toate metodele și exemplele demonstrate în acest tutorial sunt aplicabile pentru Excel 2021, Excel 2019, Excel 2016, Excel 2013, Excel 2010 și Microsoft 365.

Cuprins

Ce sunt Macro-urile VBA?

Un macro VBA este un set de comenzi stocate într-un registru de lucru sub formă de cod VBA. Funcționează ca un mic program, executând o secvență predefinită de acțiuni. Atunci când descompui termenul „Macro VBA” în „VBA” și „Macro”, vei observa o distincție clară. Un macro reprezintă o bucată de cod, în timp ce Visual Basic for Applications (VBA) este limbajul de programare creat de Microsoft special pentru crearea macro-urilor.

De exemplu, macro-urile pot gestiona sarcini repetitive, cum ar fi crearea unui raport zilnic pentru angajații tăi, printr-un singur clic. Această capacitate de automatizare transformă modul în care interacționezi cu Excel, eliberându-te de monotonie și permițându-ți să te concentrezi pe sarcini mai complexe.

De ce să folosim Macro-uri VBA în Excel?

În Excel, macro-urile VBA folosesc limbajul Visual Basic for Applications pentru a face funcții personalizate și a accelera sarcinile. Scopul lor principal este de a personaliza interfața utilizatorului, creând bare de instrumente, meniuri, casete de dialog și formulare personalizate. Rularea unui macro declanșează comenzile din interiorul său. Crearea unui macro ar putea necesita inițial ceva timp, dar odată configurat, codul VBA poate executa sarcini rapid și impecabil. Acest lucru reduce, de asemenea, erorile și economisește timp în cazul sarcinilor repetitive. Prin urmare, eficiența și acuratețea sunt beneficii majore.

Activarea Filei Dezvoltator

Pentru a accesa diverse macro-uri VBA în Excel, Add-in-uri, Controale și funcții XML, trebuie să activăm fila „Dezvoltator”. Iată pașii:

  1. Accesează fila Fișier.
  2. Apasă pe Opțiuni (s-ar putea să fie sub „Mai multe” în partea de jos).
  3. În fereastra de dialog „Opțiuni Excel”, accesează fila Personalizare Panglică.
  4. În fereastra de dialog, activează opțiunea Dezvoltator sub „File principale”.
  5. Apasă OK.

Fila „Dezvoltator” ar trebui să apară acum în panglică.

Componentele Cheie ale Interfeței Editorului Visual Basic

Principalele componente ale interfeței Editorului Visual Basic (VBE) sunt Procedurile, Modulele, Fereastra Proprietăți și Fereastra Imediată. Le poți accesa sub următoarele file:

  • Fila Inserare:
    • Procedură: Permite inserarea diferitelor tipuri de proceduri (Sub, Funcție, Proprietate) pentru a defini acțiuni sau calcule în codul tău.
    • UserForm: Permite inserarea unui UserForm, o platformă pentru a crea casete de dialog sau formulare personalizate pentru interacțiunea cu utilizatorul.
    • Modul: Inserează un modul nou unde poți scrie și stoca codul VBA.
    • Modul de Clasă: Ajută la definirea obiectelor personalizate cu proprietățile, metodele și evenimentele lor pentru o structurare avansată a codului.
  • Fila Editare:
    • Indentare: Crește nivelul de indentare al blocului de cod selectat, util pentru îmbunătățirea lizibilității.
    • Dezindentare: Scade nivelul de indentare pentru a alinia corect codul.
    • Listă Proprietăți/Metode: Oferă o referință rapidă la proprietățile și metodele disponibile.
  • Fila Vizualizare:
    • Fereastra Proprietăți: Permite vizualizarea și modificarea proprietăților obiectelor sau controalelor selectate.
    • Fereastra Imediată: Permite executarea de linii unice de cod sau evaluarea expresiilor interactiv. Este importantă pentru testare și depanare.
  • Fila Rulare:
    • Rulare: Inițiază execuția subrutinei (procedurii Sub) sau UserForm-ului selectat în proiectul VBA.
    • Resetare: Oprește execuția codului aflat în curs de rulare.
  • Fila Instrumente: Un element important este Referințe, care permite gestionarea referințelor la biblioteci sau componente externe în proiectul tău VBA.

Crearea Macro-urilor Excel VBA

Poți crea macro-uri în Excel VBA în două moduri: prin Înregistratorul de Macro-uri și utilizând Editorul Visual Basic.

1. Înregistrarea Macro-urilor în Excel VBA

Chiar dacă nu ești familiarizat cu programarea VBA, poți automatiza sarcini folosind Înregistratorul de Macro-uri din Excel. Acesta înregistrează acțiunile tale, cum ar fi clicurile de mouse și apăsările de taste, în limbajul VBA. Macro-ul înregistrat conține cod detaliat pe care îl poți vizualiza și modifica în Editorul Visual Basic. După salvarea macro-ului, rularea acestuia execută aceleași acțiuni ca cele înregistrate.

De exemplu, vom completa automat o serie în celulele B6:B10 utilizând instrumentul Fill Handle, în timp ce macro-ul este înregistrat:

  1. Accesează fila Dezvoltator și alege Înregistrare Macro din grupul Cod.
  2. Va apărea dialogul „Înregistrare Macro”.
  3. Scrie un nume pentru macro-ul tău în caseta „Nume macro” și o descriere în „Descriere”.
  4. Apasă OK. Înregistrarea macro-ului începe.
  5. Selectează B6:B7 și trage în jos pictograma Fill Handle.
  6. Apasă pe Oprire Înregistrare și mergi la Visual Basic.

Aceasta îți va arăta macro-ul dorit, convertit în cod VBA.

2. Scrierea Macro-urilor în Editorul Visual Basic

Pentru a scrie un macro direct în Editorul Visual Basic, apasă pe fila Inserare și mergi la Modul. Un modul va apărea în zona de afișare. Aici poți scrie sau lipi cod VBA. Iată un exemplu simplu:

Sub Format_Data_Ora() Selection.NumberFormat = "dd / mm / yy hh:mm" End Sub

Explicația Codului:

  • Macro-ul trebuie să aibă un nume unic. Acest nume nu trebuie să se potrivească cu alte macro-uri și, de obicei, nu ar trebui să coincidă cu numele altor proprietăți, funcții sau instrumente din Excel. Numele macro-ului este cel pe care îl vei folosi pentru a executa macro-ul. De exemplu, Sub Format_Data_Ora().
  • Pentru a defini un nume de macro, trebuie să tastezi numele cu o pereche de paranteze și să apeși Enter în fereastra de codare a editorului. Astfel, fereastra va popula automat cu formatul general al unui macro Excel.
  • End Sub denotă concluzia macro-ului. Dacă utilizatorul dorește, poate crea un al doilea macro nou scriind o nouă linie Sub NumeNou sub primul End Sub.

Rularea Macro-urilor Excel VBA

Există mai multe modalități de a rula un macro în Excel VBA:

1. Utilizarea Editorului Visual Basic pentru a Rula Macro-uri

  • Apasă tasta F5 sau butonul Rulare pentru a rula direct întregul cod.
  • Sau, apasă F8 pentru a executa codul linie cu linie, util pentru testare și depanare.

2. Rularea Macro-urilor VBA din Foaia de Lucru Excel

  • Apasă butonul Macro-uri din fila Dezvoltator sau apasă tastele Alt + F8.
  • Selectează funcția pe care dorești să o rulezi în dialogul „Macro” și apasă Rulare.

3. Rularea Macro-urilor Excel VBA cu Lansare Personalizată

Inițierea unui macro printr-un clic pe un buton personalizat permite activarea rapidă a macro-urilor fără a naviga prin meniuri. Apăsarea butonului de comandă va iniția macro-urile atribuite butonului, făcând-o o metodă foarte ușor de utilizat. Pentru detalii, consultă secțiunea următoare.

Rularea unui Macro Utilizând un Buton de Comandă

Pentru a atașa un macro la un buton și a-l rula cu un singur clic:

  1. Accesează fila Dezvoltator.
  2. Apasă pe Inserare și alege Buton de Comandă (Control ActiveX) din grupul Controale.
  3. Trage cursorul sub setul tău de date pentru a plasa butonul de comandă.
  4. Fă clic dreapta pe butonul de comandă și mergi la Vizualizare Cod.
  5. Va fi afișată schița sub-procedurii. Inserează codul tău VBA acolo.
Private Sub CommandButton1_Click() Selection.Interior.ColorIndex = 37 End Sub
  1. Apasă pe Mod Proiectare pentru a ieși din modul de proiectare.
  2. Selectează o celulă (ex: E6) și apasă butonul de comandă personalizat.

În exemplul nostru, apăsarea butonului de comandă va schimba culoarea de umplere în E6.

Salvarea Macro-urilor Excel VBA via Extensia .XLSM

Pentru a te asigura că macro-urile tale sunt salvate și funcționale, trebuie să salvezi registrul de lucru în formatul corect:

  1. Găsește butonul Salvare sau apasă Ctrl + S în fișierul care conține macro-ul.
  2. Apare dialogul „Salvare ca”. Dă un nume macro-ului tău în caseta „Nume fișier”.
  3. Selectează Registru de lucru Excel cu Macro-uri activat (.xlsm) din lista derulantă „Tip fișier”.
  4. Apasă Salvare pentru a salva macro-urile în registrul tău de lucru.

Activarea Macro-urilor Excel VBA

După deschiderea registrului de lucru, vei primi un mesaj de avertizare. Apasă butonul Activare conținut din bara galbenă de avertizare de securitate.

Dacă sursa registrului de lucru Excel cu macro-uri activat nu este de încredere, Excel va trimite un mesaj de avertizare de risc de securitate. Această avertizare apare de obicei atunci când deschizi un fișier Excel cu macro-uri activat după ce l-ai descărcat.

Pentru a preveni acest lucru, poți face clic dreapta pe fișierul .xlsm și să mergi la Proprietăți. După ce ai făcut clic pe Proprietăți, bifează caseta Deblocare sub fila „General” și apasă OK. Acum, dacă deschizi din nou fișierul, nu va mai exista niciun avertisment de risc de securitate.

Modificarea Setărilor Macro în Excel VBA

Poți ajusta nivelul de securitate pentru macro-uri în funcție de nevoile tale:

  1. Deschide fereastra de dialog „Opțiuni Excel” așa cum am menționat anterior.
  2. Mergi la Centru de încredere și navighează la Setări Centru de încredere.
  3. Va apărea dialogul „Centru de încredere”.
  4. Apasă pe Setări Macro și vei avea mai multe opțiuni:
    • Dezactivare macro-uri VBA fără notificare: Nu vei primi nicio notificare. Dacă un macro nu este stocat în locații de încredere, selectarea acestei opțiuni oprește și capacitatea ta de a rula astfel de macro-uri.
    • Dezactivare macro-uri VBA cu notificare: Când macro-urile sunt dezactivate cu această opțiune implicită, trebuie să activezi macro-urile în registre de lucru individuale.
    • Dezactivare macro-uri VBA, cu excepția macro-urilor semnate digital: Această opțiune dezactivează toate macro-urile nesemnate cu notificări în Excel. Cu toate acestea, putem semna digital macro-urile cu un certificat special de la un editor de încredere pentru a obține permisiunea de a rula.
    • Activare macro-uri VBA: Permite rularea tuturor macro-urilor, chiar dacă există un risc potențial. Aceasta este cea mai puțin sigură opțiune și ar trebui folosită cu prudență.
  5. După selectarea opțiunii dorite, apasă butonul OK.

Copierea Macro-urilor VBA în Alt Registru de Lucru

Poți copia macro-uri VBA din fișierul creat într-un alt fișier pentru reutilizare în două moduri:

1. Tragerea Modulului care Conține Macro-uri

  1. Deschide fișierele cu modulul sursă și modulul destinație.
  2. În panoul Project Explorer din Editorul Visual Basic, localizează modulul care conține macro-ul.
  3. Trage modulul din registrul de lucru sursă și plasează-l în registrul de lucru destinație.

2. Copierea Codurilor Sursă ale Macro-urilor

  1. Deschide ambele fișiere.
  2. Fă dublu clic pe modulul sursă.
  3. Selectează codul și copiază-l.
  4. Fă dublu clic pe modulul destinație și lipește codul copiat acolo.

Exportul și Importul Macro-urilor Excel VBA

Poți importa sau exporta macro-uri pentru a partaja sau muta macro-uri, convertindu-le în fișiere .bas. Aceasta este o modalitate excelentă de a gestiona și distribui codul VBA.

1. Exportul Macro-urilor

  1. În panoul Project Explorer, fă clic dreapta pe Modulul care conține macro-urile dorite.
  2. Mergi la butonul Export fișier.
  3. Făcând clic pe opțiunea „Export fișier” se va deschide dialogul „Export fișier”.
  4. Dă un nume noului tău fișier în „Nume fișier” și apasă Salvare.

2. Importul Macro-urilor

  1. Fă clic dreapta pe modulul care conține macro-urile dorite în panoul Project Explorer.
  2. Alege opțiunea Import fișier.
  3. În fereastra „Import fișier”, navighează la fișierul .bas dorit și apasă Deschidere.

Făcând clic pe opțiunea „Deschidere” se va importa modulul în registrul tău de lucru.

Protejarea Macro-urilor Excel VBA

Există două modalități de a proteja macro-urile în Excel VBA: blocarea macro-urilor și setarea protecției cu parolă pentru a preveni rularea neautorizată sau accidentală a macro-urilor.

How many cycles are there in a training program?
This foundation consists of three cycles: macrocycles, mesocycles and microcycles. The macrocycle (i.e., your entire season) is the longest of the three cycles and includes all four stages of a periodized training program (e.g., endurance, intensity, competition and recovery).

1. Blocarea Macro-urilor pentru Vizualizare Doar

Poți bloca macro-urile pentru vizualizare sau editare neautorizată cu următorii pași:

  1. În panoul Project Explorer, fă clic dreapta pe modulul dorit de blocat și selectează Proprietăți VBAProject.
  2. În caseta de dialog „Proprietăți proiect”, bifează caseta Blocare proiect pentru vizualizare din fila „Protecție”.
  3. Introdu parola de două ori și apasă OK.
  4. După ce ai apăsat OK, salvează fișierul.

Ori de câte ori vei încerca să vizualizezi codul în Editorul Visual Basic, va apărea o casetă de dialog care va solicita parola. Pentru a debloca, deschide din nou dialogul „Proprietăți proiect” și debifează caseta. Reține: Blocarea macro-urilor protejează codul de a fi vizualizat și editat, dar nu împiedică executarea codului.

2. Protejarea cu Parolă la Rulare

Poți proteja macro-ul cu o parolă, astfel încât să ruleze doar atunci când este utilizată parola corectă. Iată un exemplu:

Sub ProtejareCuParola() Dim parola As Variant parola = Application.InputBox("Introduceți parola", "Macro Protejat") Select Case parola Case Is = False ' Utilizatorul a anulat Case Is = "1234" Selection.Interior.ColorIndex = 37 ' Exemplu de acțiune Case Else MsgBox "Parolă incorectă" End Select End Sub

Rularea codului va afișa o casetă de mesaj. Introdu parola (în acest caz, „1234”) și apasă OK. Apăsarea OK va executa codul. Pentru a evita ca parola să fie vizibilă în Editorul Visual Basic, asigură-te că blochezi și macro-ul pentru vizualizare sau editare. Reține: Această metodă este foarte eficientă în prevenirea utilizărilor accidentale ale macro-urilor.

Ștergerea Macro-urilor Excel VBA

Pentru a elimina un macro:

  1. Accesează fila Dezvoltator.
  2. Alege Macro-uri din grupul Cod.
  3. Va apărea caseta de dialog „Macro”.
  4. Selectează macro-ul pe care dorești să-l ștergi și apasă butonul Ștergere. Acest lucru va elimina macro-ul selectat din registrul de lucru.

Sfaturi Pro pentru Macro-uri în Excel VBA

1. Împărțirea Codului VBA pe Mai Multe Linii

Pentru a împărți o instrucțiune lungă în mai multe linii, poți utiliza caracterul de continuare a liniei, care este un spațiu urmat de o subliniare (_) în punctul în care dorești să se spargă linia. Este eficient atunci când ai instrucțiuni lungi și complexe, îmbunătățind lizibilitatea codului.

w.SaveAs Filename:="C:\Users\Utilizator\Desktop\Date_Vanzari.xlsx", _ FileFormat:=xlWorkbookDefault, _ ReadOnlyRecommended:=False, CreateBackup:=False

2. Accesibilizarea Macro-urilor din Orice Registru de Lucru

Când creezi sau înregistrezi un macro în Excel, acesta este de obicei accesibil doar în cadrul acelui registru de lucru specific. Dacă dorești să utilizezi același cod în alte registre de lucru, salvează-l în Registrul de Macro-uri Personal. Ca rezultat, macro-ul îți este disponibil de fiecare dată când deschizi Excel.

3. Anularea unei Acțiuni Macro

Pentru a anula o acțiune macro, nu vei avea butonul Anulare și nu vei putea utiliza tastele Ctrl + Z. Adaugă următoarea linie în cod înainte de a permite macro-ului să efectueze orice acțiune:

ActiveWorkbook.Save

În acest fel, poți salva registrul de lucru activ din codul macro-ului. Ulterior, poți pur și simplu închide și redeschide fișierul pentru a reveni la starea anterioară acțiunii macro-ului. Această metodă oferă un fel de „punct de salvare” manual.

Exemple de Macro-uri Utile în Excel VBA

VBA deschide o lume de posibilități pentru automatizarea și personalizarea Excel. Iată câteva exemple ilustrative care demonstrează versatilitatea macro-urilor:

1. Inserarea Numerelor Seriale

Poți insera rapid numere seriale într-un interval specific, fără a le introduce manual. Un macro poate solicita numărul de elemente și apoi completează automat coloana.

2. Inserarea și Ștergerea de Coloane/Rânduri Multiple

În loc să inserezi sau să ștergi coloane și rânduri una câte una, un macro poate efectua această operație pentru un număr specificat de coloane/rânduri, economisind timp prețios. De exemplu, pentru a șterge o coloană specifică:

Sub StergeColoanaIntreaga() Dim coloanaFixa As Range Set coloanaFixa = Columns("E") ' Schimba la coloana dorita If Not coloanaFixa Is Nothing Then coloanaFixa.Delete Else MsgBox "Coloana invalida", vbExclamation End If End Sub

3. Găsirea și Evidențierea Valorilor Unice/Duplicate, Min/Max

Macro-urile pot parcurge un interval de celule pentru a identifica și evidenția valori unice, duplicate, cele mai mici sau cele mai mari valori, sau chiar primele N valori, facilitând analiza datelor. De exemplu, pentru a evidenția valoarea minimă:

Sub GasesteValoareMinima() Dim rng As Range, targetRange As Range, minVal As Double Set targetRange = Range("E6:E15") minVal = WorksheetFunction.Min(targetRange) For Each rng In targetRange If rng.Value = minVal Then rng.Interior.Color = RGB(245, 220, 220) ' Evidentiaza cu o culoare End If Next rng End Sub

4. Ascunderea și Afișarea Foilor de Lucru

Poți ascunde toate foile de lucru, cu excepția celei active, sau poți afișa toate foile ascunse dintr-un registru de lucru, util pentru a simplifica vizualizarea datelor complexe.

5. Salvarea Fiecărei Foi de Lucru ca PDF Separat

Dacă ai un registru de lucru cu multe foi pe care trebuie să le distribui ca fișiere PDF individuale, un macro poate automatiza acest proces laborios.

6. Conversia Formulelor în Valori

Dacă vrei ca datele tale să fie statice și să nu se modifice cu formule, un macro poate converti rapid toate formulele dintr-un interval selectat în valorile lor rezultate.

7. Conversia Textului (Upper, Lower, Proper Case)

Poți standardiza rapid formatul textului (majuscule, minuscule, inițială mare) într-un interval mare de celule, asigurând consistența datelor.

8. Eliminarea Caracterelor sau a Zecimalelor

Un macro poate elimina anumite caractere dintr-o selecție sau poate converti numerele cu zecimale în numere întregi, simplificând curățarea datelor.

9. Împărțirea și Unirea Textului din Interval

Similar cu funcțiile Text to Columns și Concatenate, macro-urile pot împărți șiruri de text (ex: nume complete în nume și prenume) sau le pot uni, automatizând procese comune de manipulare a textului.

10. Inserarea Datei și Ore Automate

Un macro poate insera automat data și ora curente într-o celulă adiacentă ori de câte ori o celulă specifică dintr-o coloană este modificată, ideal pentru urmărirea intrărilor de date.

11. Înlocuirea Celulelor Goale cu Zero

Pentru a asigura integritatea datelor și a evita erorile în calcule, un macro poate identifica și înlocui toate celulele goale dintr-un interval cu valoarea zero.

12. Extragerea Comentariilor din Interval

Poți extrage toate comentariile (sau notele, în versiunile mai noi de Excel) dintr-un interval specific și le poți plasa într-o coloană separată, facilitând revizuirea și documentarea.

Acestea sunt doar câteva exemple din multitudinea de sarcini pe care le poți automatiza cu macro-uri VBA. Posibilitățile sunt practic nelimitate, iar investiția de timp în învățarea VBA se va amortiza rapid prin creșterea productivității și reducerea efortului manual.

Întrebări Frecvente (FAQ) despre Macro-uri VBA

ÎntrebareRăspuns
Ce este VBA?VBA (Visual Basic for Applications) este un limbaj de programare dezvoltat de Microsoft, integrat în aplicațiile Office (precum Excel), folosit pentru a automatiza sarcini și a extinde funcționalitatea acestora.
De ce să folosesc macro-uri?Macro-urile te ajută să automatizezi sarcini repetitive, să creezi funcții personalizate, să optimizezi fluxurile de lucru, să reduci erorile umane și să economisești timp semnificativ.
Este VBA greu de învățat?VBA poate părea intimidant la început, dar cu un ghid pas cu pas și practică, oricine poate învăța să creeze macro-uri funcționale. Înregistratorul de macro-uri este un punct de plecare excelent.
Pot fi periculoase macro-urile?Da, macro-urile pot conține cod rău intenționat. De aceea, Excel are setări de securitate pentru macro-uri. Este esențial să activezi macro-uri doar din surse de încredere.
Cum salvez un registru de lucru cu macro-uri?Trebuie să salvezi fișierul ca un „Registru de lucru Excel cu Macro-uri activat” cu extensia .xlsm, altfel macro-urile tale nu vor fi păstrate.
Pot rula un macro pe orice versiune de Excel?Majoritatea macro-urilor sunt compatibile cu versiunile mai noi de Excel (2010 și ulterioare), dar pot exista mici diferențe în funcție de obiectele și metodele specifice utilizate.

În concluzie, macro-urile VBA sunt un instrument esențial pentru oricine dorește să își maximizeze eficiența în Excel. De la automatizarea sarcinilor simple la crearea de soluții complexe, VBA îți oferă controlul de a personaliza Excel-ul pentru a se potrivi perfect nevoilor tale. Prin înțelegerea și aplicarea conceptelor prezentate în acest ghid, vei putea transforma modul în care lucrezi cu datele, economisind timp și eliminând erorile. Nu mai lăsa sarcinile repetitive să te încetinească; îmbrățișează puterea VBA și du-ți productivitatea la un nou nivel!

Dacă vrei să descoperi și alte articole similare cu Automatizează Excel cu Macro-uri VBA, poți vizita categoria Fitness.

Go up