Kako snimiti makro u Excelu

  • Podijeli Ovo
Michael Brown

Vodič korak po korak za početnike za snimanje, pregled, pokretanje i spremanje makroa. Također ćete naučiti neke unutrašnje mehanike kako makroi rade u Excelu.

Makroi su odličan način za automatizaciju zadataka koji se ponavljaju u Excelu. Ako nađete da radite iste stvari iznova i iznova, snimite svoje poteze kao makro i dodijelite mu prečicu na tipkovnici. A sada, sve snimljene radnje možete izvršiti automatski, jednim pritiskom na tipku!

    Kako snimiti makro u Excel

    Kao i drugi VBA alati, Excel makroi nalazi se na kartici Developer , koja je skrivena po defaultu. Dakle, prva stvar koju trebate učiniti je da dodate karticu Developer na vašu Excel traku.

    Da biste snimili makro u Excelu, izvršite ove korake:

    1. Na <1 Na kartici>Razvojnik , u grupi Kôd , kliknite na dugme Snimi makro .

      Alternativno, kliknite na Snimi Dugme Macro na lijevoj strani trake Status :

      Ako više volite raditi s tastaturom, a ne mišem, pritisnite sljedeće sekvenca tastera Alt , L , R (jedan po jedan, ne svi tasteri odjednom).

    2. U dijaloškom okviru Snimi makro koji se pojavi, konfigurirajte glavne parametre vašeg makroa:
      • U Makro ime , unesite ime za svoj makro. Pokušajte to učiniti smislenim i opisnim, tako da ćete kasnije moći brzo pronaći makro na listi.

        Uštedi vam puno vremena i živaca čineći vašu krivulju učenja glatkijom i makroima efikasnijim.

        Koristite relativne reference za snimanje makroa

        Prema zadanim postavkama, Excel koristi apsolutno referenciranje za snimanje makroa. To znači da će se vaš VBA kod uvijek odnositi na potpuno iste ćelije koje ste odabrali, bez obzira gdje se nalazite na radnom listu kada pokrećete makro.

        Međutim, moguće je promijeniti zadano ponašanje u relativno referenciranje . U ovom slučaju, VBA neće tvrdo kodirati adrese ćelija, ali će raditi relativno u odnosu na aktivnu (trenutno odabranu) ćeliju.

        Da snimite makro s relativnim referencama, kliknite na Koristi <8 Dugme>Relativne reference na kartici Programer . Da se vratite na apsolutno referenciranje, ponovo kliknite na dugme da ga isključite.

        Na primjer, ako snimite postavljanje tablice sa zadanim apsolutnim referencama, vaš makro će uvijek ponovo kreirajte tabelu na istom mestu (u ovom slučaju, Header u A1, Item1 u A2, Item2 u A3).

        Sub Absolute_Referencing() Opseg( "A1" ). Odaberite ActiveCell.FormulaR1C1 = Opseg "Header" ( "A2" ). Odaberite ActiveCell.FormulaR1C1 = Opseg "Item1" ( "A3" ). Odaberite ActiveCell.FormulaR1C1 = "Item2" End Sub

        Ako snimite isti makro s relativnim referencama, tabela će biti kreirana gdje god stavite kursor prije pokretanja makroa ( Header uaktivna ćelija, Item1 u donjoj ćeliji, i tako dalje).

        SubRelative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Odaberite ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Odaberite ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Odaberite End Sub

        Napomene:

        • Kada koristite relativne reference, obavezno odaberite početnu ćeliju prije nego počnete snimati makro.
        • Relativno referenciranje ne radi za sve. Neke Excel funkcije, npr. pretvaranje raspona u tablicu, zahtijevaju apsolutne reference.

        Odaberite raspone korištenjem prečica na tipkovnici

        Kada odaberete ćeliju ili raspon ćelija pomoću miša ili tipki sa strelicama, Excel upisuje adrese ćelija. Shodno tome, kad god pokrenete makro, snimljene operacije će se izvršiti tačno na istim ćelijama. Ako ovo nije ono što želite, koristite prečice za odabir ćelija i raspona.

        Kao primjer, snimimo makro koji postavlja određeni format (d-mmm-yy) za datume u donjoj tabeli:

        Za ovo snimate sljedeće operacije: pritisnite Ctrl + 1 da otvorite Format Cells dijalog > Datum > odaberite format > UREDU. Ako vaš snimak uključuje odabir raspona pomoću miša ili tipki sa strelicama, Excel će proizvesti sljedeći VBA kod:

        Sub Date_Format() Range( "A2:B4" ). OdaberiteSelection.NumberFormat = "d-mmm-yy" End Sub

        Pokretanje gornjeg makroa bi svaki put izabralo opseg A2:B4. Ako dodate još nekoliko redova u svoju tabelu, makro ih neće obraditi.

        Sada, da vidimo šta se dešava kada odaberete tabelu pomoću prečice.

        Postavite kursor u gornjoj lijevoj ćeliji ciljnog raspona (A2 u ovom primjeru), počnite snimanje i pritisnite Ctrl + Shift + End . Kao rezultat, prvi red koda će izgledati ovako:

        Range(Selection, ActiveCell.SpecialCells(xlLastCell)). Odaberite

        Ovaj kod odabire sve ćelije od aktivne ćelije do posljednje korištene ćelije, što znači da će svi novi podaci biti automatski uključeni u odabir.

        Alternativno, možete koristiti kombinacije Ctrl + Shift + strelice:

        • Ctrl + Shift + strelica nadesno za odabir svih korištenih ćelija udesno, nakon čega slijedi
        • Ctrl + Shift + strelica dolje za odabir svih korištenih ćelija prema dolje.

        Ovo će generirati dvije linije koda umjesto jedne, ali rezultat će biti isti - sve ćelije s podacima dolje i desno od aktivne ćelije će biti odabrane:

        Opseg(Izbor, Izbor. Kraj ( xlToRight)). Odaberite Opseg (Izbor, Odabir. Kraj (xlDown)). Odaberite

        Snimi makro za odabir umjesto određenih ćelija

        Navedena metoda (tj. odabir svih korištenih ćelija počevši od aktivne ćelije) odlično funkcionira za izvođenje istih operacija na cijeloj tablici. U nekimU situacijama, međutim, možda ćete htjeti da makro obrađuje određeni raspon umjesto cijele tablice.

        Za ovo, VBA pruža Izbor objekat koji se odnosi na trenutno odabrane ćelije . Većina stvari koje se mogu uraditi sa rasponom, mogu se uraditi i selekcijom. Kakvu vam to prednost daje? U mnogim slučajevima, ne morate uopće ništa odabrati tijekom snimanja - samo napišite makro za aktivnu ćeliju. A zatim, odaberite bilo koji raspon koji želite, pokrenite makro i on će manipulirati cijelim odabirom.

        Na primjer, ovaj jednolinijski makro može formatirati bilo koji broj odabranih ćelija kao procente:

        Sub Percent_Format () Selection.NumberFormat = "0.00%" End Sub

        Pažljivo planirajte ono što snimate

        Microsoft Excel Macro Recorder snima gotovo sve vaše aktivnosti, uključujući greške koje pravite i ispravljate. Na primjer, ako pritisnete Ctrl + Z da nešto poništite, to će također biti snimljeno. Na kraju, možete završiti s puno nepotrebnog koda. Da biste to izbjegli, ili uredite kod u VB Editoru ili zaustavite snimanje, izbrišite neispravan makro i počnite snimati iznova.

        Napravite sigurnosnu kopiju ili sačuvajte radnu knjigu prije pokretanja makronaredbe

        Rezultat Excel-a makroi se ne mogu poništiti. Dakle, prije prvog pokretanja makronaredbe, ima smisla napraviti kopiju radne knjige ili barem sačuvati svoj trenutni rad kako biste spriječili neočekivane promjene. Ako makro uradi nešto pogrešno,jednostavno zatvorite radnu svesku bez spremanja.

        Snimljeni makroi neka budu kratki

        Kada automatizujete niz različitih zadataka, možda ćete biti u iskušenju da ih sve snimite u jednom makrou. Dva su glavna razloga da to ne uradite. Prvo, teško je glatko snimiti dugi makro bez grešaka. Drugo, velike makroe je teško razumjeti, testirati i otkloniti greške. Stoga je dobra ideja podijeliti veliki makro na nekoliko dijelova. Na primjer, kada kreirate sažetu tablicu iz više izvora, možete koristiti jedan makro za uvoz informacija, drugi za konsolidaciju podataka, a treći za formatiranje tablice.

        Nadam se da vam je ovaj vodič dao neki uvid o tome kako snimiti makro u Excelu. U svakom slučaju, zahvaljujem se na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice!

        imena makroa, možete koristiti slova, brojeve i donje crte; prvi znak mora biti slovo. Razmaci nisu dozvoljeni, tako da biste trebali ili zadržati ime od jedne riječi počevši svaki dio velikim slovom (npr. Moj prvimakro ) ili odvojene riječi s podvlakama (npr. Moj_prvi_makro ).
      • U okviru Taster prečice unesite bilo koje slovo da dodelite prečicu na tastaturi makrou (opciono).

        Dozvoljena su i velika i mala slova, ali bilo bi pametno koristiti velike kombinacije tipki ( Ctrl + Shift + slovo ) jer prečice makroa poništavaju sve zadane Excel prečice dok je radna knjiga koja sadrži makro otvorena. Na primjer, ako makronaredbi dodijelite Ctrl + S, izgubit ćete mogućnost spremanja Excel datoteka pomoću prečice. Dodjeljivanjem Ctrl + Shift + S zadržat će se standardna prečica za spremanje.

      • S padajuće liste Spremi makro u odaberite gdje želite pohraniti svoj makro:
        • Personal Macro Workbook – pohranjuje makro u posebnu radnu knjigu pod nazivom Personal.xlsb . Svi makroi pohranjeni u ovoj radnoj knjizi dostupni su kad god koristite Excel.
        • Ova radna sveska (podrazumevano) - makro će biti pohranjen u trenutnoj radnoj knjizi i bit će dostupan kada ponovo otvorite radnu knjigu ili je podijelite s drugim korisnicima.
        • Nova radna knjiga – kreira novu radnu knjigu i snima makro u tu radnu knjigu.
      • UU polje Opis unesite kratak opis onoga što vaš makro radi (opcionalno).

        Iako ovo polje nije obavezno, preporučio bih vam da uvijek navedete kratak opis. Kada kreirate mnogo različitih makroa, to će vam pomoći da brzo shvatite šta svaki makro radi.

      • Kliknite na OK da započnete snimanje makroa.

    3. Izvršite radnje koje želite za automatizaciju (pogledajte primjer makronaredbe snimanja).
    4. Kada završite, kliknite na dugme Zaustavi snimanje na kartici Razvojnik :

      Ili analogno dugme na Status traci:

    Primjer snimanja makronaredbe u Excel

    Da vidimo kako to funkcionira u praksi, snimimo makro koji primjenjuje neko formatiranje na odabrane ćelije. Za to učinite sljedeće:

    1. Odaberite jednu ili više ćelija koje želite formatirati.
    2. Na kartici Razvojnik ili Status traku, kliknite na Snimi makro .
    3. U dijaloškom okviru Snimi makro , konfigurirajte sljedeće postavke:
      • Imenujte makro Formatiranje_zaglavlja (jer ćemo formatirati zaglavlja kolona).
      • Postavite kursor u okvir Taster prečice i istovremeno pritisnite tipke Shift + F. Ovo će makrou dodijeliti prečicu Ctrl + Shift + F.
      • Odaberite da pohranite makro u ovu radnu knjigu.
      • Za Opis koristite sljedeći tekst koji objašnjava šta makro radi: Podebljava tekst, dodaje boju ispune i centrira .
      • Kliknite na OK za početak snimanja.

    4. Formatirajte unaprijed odabrane ćelije onako kako želite. Za ovaj primjer koristimo podebljano oblikovanje teksta, svijetloplavu boju ispune i poravnanje po sredini.

      Savjet. Nemojte birati ćelije nakon što započnete snimanje makroa. Ovo će osigurati da se svo formatiranje primjenjuje na izbor , a ne na određeni raspon.

    5. Kliknite na Zaustavi snimanje na kartici Razvojnik ili na traci Status .

    To je to! Vaš makro je snimljen. Sada možete odabrati bilo koji raspon ćelija na bilo kojem listu, pritisnuti dodijeljenu prečicu ( Ctrl+ Shift + F), a vaše prilagođeno oblikovanje će se odmah primijeniti na odabrane ćelije.

    Kako raditi sa snimljenim makroima u Excel-u

    Svim glavnim opcijama koje Excel nudi za makroe može se pristupiti preko Makro dijaloškog okvira. Da biste ga otvorili, kliknite na dugme Macros na kartici Developer ili pritisnite prečicu Alt+ F8.

    U dijaloškom okviru koji se otvori, možete pogledati listu makronaredbi dostupnih u svim otvorenim radnim knjigama ili povezanih sa određenom radnom sveskom i koristiti sljedeće opcije:

    • Pokreni - izvršava odabrani makro .
    • Step into - omogućava vam da otklonite greške i testirate makro u Visual Basic Editoru.
    • Edit - otvara odabrani makro uVBA Editor, gdje možete vidjeti i uređivati ​​kod.
    • Izbriši - trajno briše odabrani makro.
    • Opcije – omogućava promjenu svojstva makroa kao što su pridružena Prečica tipka i Opis .

    Kako pogledati makroi u Excel-u

    Kôd Excel makroa se može vidjeti i mijenjati u Visual Basic Editoru. Da otvorite uređivač, pritisnite Alt + F11 ili kliknite na dugme Visual Basic na kartici Razvojnik .

    Ako vidite VB Editor po prvi put, nemojte se osjećati obeshrabreno ili zastrašeno. Nećemo govoriti o strukturi ili sintaksi VBA jezika. Ovaj odjeljak će vam samo dati osnovno razumijevanje o tome kako Excel makroi rade i šta snimanje makroa zapravo radi.

    VBA Editor ima nekoliko prozora, ali ćemo se fokusirati na dva glavna:

    Project Explorer - prikazuje listu svih otvorenih radnih knjiga i njihovih listova. Pored toga, prikazuje module, korisničke obrasce i module klasa.

    Prozor koda - ovo je mjesto gdje možete pregledati, urediti i napisati VBA kod za svaki objekat prikazan u Project Exploreru.

    Kada smo snimili uzorak makronaredbe, dogodile su se sljedeće stvari u pozadini:

    • Novi modul ( Moduel1 ) je bio umetnuto.
    • VBA kod makroa je napisan u prozoru Code.

    Da biste vidjeli kod određenogmodul, dvaput kliknite na modul ( Modul1 u našem slučaju) u prozoru Project Explorer. Obično kod makroa ima ove dijelove:

    Naziv makroa

    U VBA, svaki makro počinje sa Sub praćen imenom makroa i završava sa End Sub , gdje je "Sub" skraćenica za Podprogram (također se zove Procedura ). Naš uzorak makronaredbe se zove Header_Formatting() , tako da kod počinje ovom linijom:

    Sub Header_Formatting()

    Ako želite preimenovati makro , jednostavno obrišite trenutno ime i upišite novo direktno u prozor koda.

    Komentari

    Linije sa prefiksom apostrofa (') i prikazane zelenom bojom prema zadanim postavkama se ne izvršavaju. Ovo su komentari dodani u informativne svrhe. Redovi komentara se mogu bezbedno ukloniti bez uticaja na funkcionalnost koda.

    Obično, snimljeni makro ima 1 - 3 reda komentara: ime makroa (obavezno); opis i prečica (ako je navedeno prije snimanja).

    Izvršni kod

    Nakon komentara dolazi kod koji izvršava radnje koje ste snimili. Ponekad snimljeni makro može imati mnogo suvišnog koda, koji bi ipak mogao biti koristan za otkrivanje kako stvari funkcioniraju s VBA :)

    Slika ispod pokazuje šta svaki dio koda našeg makroa radi:

    Kako pokrenuti snimljeni makro

    Pokretanjem makroa, kažete Excelu da se vrati na snimljeni VBA kod i izvršipotpuno isti koraci. Postoji nekoliko načina za pokretanje snimljenog makroa u Excelu, a evo i najbržih:

    • Ako ste makrou dodijelili prečicu na tastaturi , pritisnite tu prečicu .
    • Pritisnite Alt + 8 ili kliknite na dugme Makroi na kartici Programer . U dijaloškom okviru Makro odaberite željeni makro i kliknite na Pokreni .

    Također je moguće pokrenuti snimljeni makro klikom na vlastito dugme. Evo koraka da ga napravite: Kako kreirati makro dugme u Excelu.

    Kako sačuvati makroe u Excelu

    Bilo da ste snimili makro ili ručno napisali VBA kod, da biste sačuvali makro , morate da sačuvate radnu svesku kao omogućenu makronaredbu (.xlms ekstenzija). Evo kako:

    1. U radnoj knjizi koja sadrži makro, kliknite na dugme Sačuvaj ili pritisnite Ctrl + S .
    2. U Sačuvaj kao dijaloški okvir, odaberite Excel Macro-Enabled Workbook (*.xlsm) sa padajuće liste Sačuvaj kao tip , a zatim kliknite Sačuvaj :

    Excel makroi: šta se snima, a šta nije

    Kao što ste upravo videli, prilično je lako snimiti makro u Excelu. Ali da biste kreirali efikasne makroe, morate razumjeti šta se dešava iza kulisa.

    Šta se snima

    Excelov Macro Recorder snima dosta stvari - skoro sve klikove mišem i pritiske tipki. Dakle, trebali biste pažljivo razmisliti o svojim koracima kako biste izbjegli višak koda koji bi mogaorezultirati neočekivanim ponašanjem vašeg makroa. Ispod je nekoliko primjera onoga što Excel bilježi:

    • Biranje ćelija pomoću miša ili tastature. Snima se samo posljednji odabir prije akcije. Na primjer, ako odaberete raspon A1:A10, a zatim kliknete na ćeliju A11, bit će zabilježen samo odabir A11.
    • Formatiranje ćelije kao što je boja ispune i fonta, poravnanje, ivice, itd.
    • Formatiranje brojeva kao što su postotak, valuta, itd.
    • Uređivanje formula i vrijednosti. Promjene se bilježe nakon što pritisnete Enter .
    • Skrolovanje, pomicanje Excel prozora, prebacivanje na druge radne listove i radne knjige.
    • Dodavanje, imenovanje, premještanje i brisanje radnih listova.
    • Kreiranje, otvaranje i spremanje radnih knjiga.
    • Pokretanje drugih makroa.

    Šta se ne može snimiti

    Uprkos mnogim različitim stvarima koje Excel može snimiti, određene funkcije su izvan mogućnosti Macro Recorder:

    • Prilagođavanja Excel trake i alatne trake za brzi pristup.
    • Radnje unutar Excel dijaloških okvira kao što su Uvjetno oblikovanje ili Pronađi i zamijeni (snima se samo rezultat).
    • Interakcije sa drugim programima. Na primjer, ne možete snimiti kopiranje/lijepljenje iz Excel radne knjige u Word dokument.
    • Sve što uključuje VBA Editor. Ovo nameće najznačajnija ograničenja – mnoge stvari koje se mogu uraditi na nivou programiranja ne mogubiti snimljeni:
      • Kreiranje prilagođenih funkcija
      • Prikazivanje prilagođenih dijaloških okvira
      • Pravljenje petlji kao što su Za sljedeće , Za svaki , Učini dok , itd.
      • Procjena uslova. U VBA, možete koristiti IF Then Else naredbu da testirate uslov i pokrenete neki kod ako je uslov tačan ili drugi kod ako je uslov netačan.
      • Izvršavanje koda na osnovu događaja . Uz VBA, možete koristiti mnoge događaje za pokretanje koda povezanog s tim događajem (kao što je otvaranje radne knjige, ponovno izračunavanje radnog lista, promjena odabira i tako dalje).
      • Korišćenje argumenata. Kada pišete makro u VBA Editoru, možete navesti ulazne argumente za makro da izvrši određeni zadatak. Snimljeni makro ne može imati nikakve argumente jer je nezavisan i nije povezan ni sa jednim drugim makroom.
      • Razumijevanje logike. Na primjer, ako snimite makro koji kopira određene ćelije, recimo u redu Ukupno , Excel će zabilježiti samo adrese kopiranih ćelija. Uz VBA, možete kodirati logiku, tj. kopirati vrijednosti u redu Ukupno .

    Iako gornja ograničenja postavljaju mnoge granice za snimljene makroe, oni su i dalje dobra polazna tačka. Čak i ako nemate pojma o VBA jeziku, možete brzo snimiti makro, a zatim analizirati njegov kod.

    Korisni savjeti za snimanje makroa u Excelu

    U nastavku ćete pronaći nekoliko savjeta i bilješke koje potencijalno mogu

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.