Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Programi
  • Popularni makroi za excel. Kako omogućiti makronaredbe u Excelu

Popularni makroi za excel. Kako omogućiti makronaredbe u Excelu

Sljedeći jednostavni primjeri Excel makroi ilustriraju neke od funkcija i tehnika opisanih u vodiču za Excel VBA.

Excel makro: primjer 1

U početku ovaj postupak Sub dat je kao primjer korištenja komentara u VBA kodu. Međutim, ovdje također možete vidjeti kako se deklariraju varijable, kako funkcioniraju reference ćelija u Excelu i korištenje petlje Za, uslovni operator Ako i prikaz prozora sa porukom.

"Sub procedura traži ćeliju koja sadrži navedeni niz "u rasponu ćelija A1:A100 aktivnog lista Sub Find_String(sFindText As String) Dim i As Integer "Cijeli broj tipa Integer, koji se koristi u For petlji Dim iRowNumber As Integer "Cijeli broj tipa Integer za pohranjivanje rezultata iRowNumber = 0 "Pregleda ćelije A1:A100 jednu po jednu dok se niz ne pronađe sFindText For i = 1 do 100 If Cells(i, 1).Value = sFindText Then " Ako se pronađe podudaranje sa navedenim nizom " sačuvajte broj trenutna linija i odlazimo iz Za petlju iRowNumber = i Exit For End If Next i "Obavještavamo korisnika u iskačućem prozoru da li je traženi red pronađen "Ako je navedeni red pronađen, navedite u kojoj ćeliji je pronađeno podudaranje Ako je iRowNumber = 0 Tada MsgBox " red " & sFindText & " nije pronađen " Else MsgBox " Red "&sFindText&" je pronađen u ćeliji A" & iRowNumber Kraj ako Kraj pod

Excel makro: primjer 2

Sljedeća procedura Sub– primjer korištenja petlje Uradi Dok. Također možete vidjeti kako su varijable deklarirane, radeći sa Excel referencama ćelija i koristeći uslovni izraz. Ako.

"Sub procedura daje Fibonaccijeve brojeve koji ne prelaze 1000 Sub Fibonacci() Dim i As Integer "Bralac koji pokazuje poziciju elementa u nizu Dim iFib As Integer "Shranjuje trenutnu vrijednost niza Dim iFib_Next As Integer "Skladišti sljedeća vrijednost niza Dim iStep As Integer "Skladišti veličinu sljedećeg inkrementa "Inicijaliziraj varijable i i iFib_Next i = 1 iFib_Next = 0 "Petlja Do While će se izvršavati sve dok vrijednost "trenutnog Fibonaccijevog broja ne pređe 1000 Do While iFib_Next< 1000 If i = 1 Then "Poseban slučaj za prvi element niza iStep = 1 iFib = 0 Inače "Sačuvajte veličinu sljedećeg inkrementa prije nego što prepišete "trenutnu vrijednost niza iStep = iFib iFib = iFib_Next End If "Iznesite trenutni Fibonačijev broj u kolonu A aktivni radni list "u redu sa indeksom i Ćelije(i, 1).Vrijednost = iFib "Izračunajte sljedeći Fibonačijev broj i povećajte indeks pozicije elementa za 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

Excel makro: primjer 3

Ova procedura Sub skenira ćelije kolone A aktivni list dok ne naiđe na praznu ćeliju. Vrijednosti se zapisuju u niz. Ovaj jednostavan Excel makro prikazuje rad sa dinamičkim nizovima, kao i korištenje petlje Do Until. IN u ovom primjeru nećemo izvoditi nikakve radnje s nizom, iako se u realnoj programskoj praksi, nakon što se podaci upisuju u niz, takve akcije se obično izvode na njima.

"Sub procedura pohranjuje vrijednosti ćelija kolone A aktivnog lista u nizu Sub GetCellValues() Dim iRow As Integer "Sprema broj trenutnog reda Dim dCellValues() kao Double "Niz za pohranjivanje vrijednosti ćelija iRow = 1 ReDim dCellValues(1 do 10) "Do Loop dok se ne ponavlja kroz ćelije kolone A aktivnog lista "i izdvaja njihove vrijednosti u niz sve dok ne naiđe prazna ćelija Učinite do ispraznog(Cells(iRow, 1)) "Provjerite da li je niz dCellValues ​​dovoljne veličine "Ako nije, povećajte veličinu niza za 10 koristeći ReDim If UBound(dCellValues)< iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If "Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value iRow = iRow + 1 Loop End Sub

Excel makro: primjer 4

U ovom primjeru, procedura Subčita vrijednosti iz kolone A radni list Sheet2 i radi to sa njima aritmetičke operacije. Rezultati se unose u ćelije kolone A na aktivnom radnom listu. Ovaj makro demonstrira upotrebu Excel objekata. Konkretno, žalba se sprovodi po postupku Sub prema objektu Kolone, i pokazuje kako se ovom objektu pristupa preko objekta Radni list. Takođe je prikazano da prilikom pristupa ćeliji ili opsegu ćelija na aktivnom listu nije potrebno navesti ime ovog lista prilikom pisanja veze.

"Sub procedura, koristeći petlju, čita vrijednosti u stupcu A radnog lista Sheet2, "izvodi aritmetičke operacije sa svakom vrijednošću i upisuje rezultat u "kolona A aktivnog radnog lista (Sheet1) Sub Transfer_ColA() Dim i As Integer Dim Col As Range Dim dVal As Double "Dodijeli stupac A radnog lista Sheet 2 varijablu Col Postavi Col = Sheets("Sheet2"). Columns("A") i = 1 "Pomoću petlje pročitajte ćeliju vrijednosti stupac pukovnik sve dok "dok se ne naiđe na praznu ćeliju Uradi Dok se ne isprazni(Col.Cells(i)) "Izvrši aritmetičke operacije na vrijednosti trenutne ćelije dVal = Col.Cells(i).Value * 3 - 1 "Sljedeća naredba upisuje rezultat u kolonu A aktivnog radnog lista „Nema potrebe da navedete naziv lista u linku, pošto je ovo aktivni list. Ćelije(i, 1) = dVal i = i + 1 Loop End Sub

Excel makro: primjer 5

Ovaj makro prikazuje primjer VBA koda koji prati Excel događaj. Događaj na koji je vezan makro javlja se svaki put kada se na radnom listu odabere ćelija ili raspon ćelija. U našem slučaju, prilikom odabira ćelije B1, na ekranu se pojavljuje prozor sa porukom.

"Ovaj kod prikazuje prozor sa porukom ako je na trenutnom radnom listu "ćelija B1 odabrana Private Sub Worksheet_SelectionChange(ByVal Target As Range) "Provjerite da li je ćelija B1 odabrana ako je Target.Count = 1 i Target.Row = 1 i Target.Column = 2 Tada " Ako je odabrana ćelija B1, izvršite potrebna radnja MsgBox "Odabrali ste ćeliju B1" Završi ako Završi pod

Excel makro: primjer 6

Ovaj postupak ilustruje upotrebu operatora On Error I Nastavi za rukovanje greškama. Ovaj kod također pokazuje primjer otvaranja i čitanja podataka iz datoteke.

"Sub procedura dodeljuje argumentima Val1 i Val2 vrednosti ćelija A1 i B1" iz radne knjige Data.xlsx koja se nalazi u fascikli C:\Documents and Settings Sub Set_Values(Val1 As Double, Val2 As Double) Dim DataWorkbook As Radna sveska o grešci Idi na ErrorHandling " Otvaranje radna sveska sa podacima Set DataWorkbook = Workbooks.Open("C:\Documents and Settings\Data") "Dodelite varijabli Val1 i Val2 vrednosti iz date radne sveske Val1 = Sheets("Sheet1").Ćelije(1, 1) Val2 = Sheets( "Sheet1").Cells(1, 2) DataWorkbook.Close Exit Sub ErrorHandling: "Ako datoteka nije pronađena, korisnik će biti upitan da postavi datoteku koju traži" u željeni folder a nakon toga nastavite s izvršavanjem makroa MsgBox "Datoteka Data.xlsx nije pronađena! " & _ "Molimo dodajte radnu knjigu u C:\Documents and Settings folder i kliknite OK" Nastavi Završi pod

Excel tabele su jedna od najpopularnijih popularne načinečuvanje i sistematizacija informacija. Ako u Excel uvedete makroe, mogućnosti programa mogu se skoro udvostručiti. Na primjer, makroi pomažu u automatizaciji rutinskih procesa i ubrzavaju monoton rad. Često ih koriste stručnjaci koji prevode izvještaje iz 1C u Excel. Uz pomoć ugrađenog koda, oni se lako mogu svesti na jedan standardni predložak.

Šta su Excel makroi?

Makroi se koriste ne samo u tabelama, već u svemu microsoft office. Oni su kreirani pomoću Visual basic za kod aplikacije. Ako ste djelimično upoznati sa web programiranjem, onda možete povući analogiju sa Javascriptom. Excel makroi rade otprilike istu stvar koju Javascript radi sa HTML podacima.

Mali dio onoga što makro može učiniti u uredskim aplikacijama:

Poravnajte dokument prema stilu i formatirajte ga;
. obavljati operacije sa numeričkim i tekstualnim podacima;
. potražite pomoć eksterne datoteke(tekst, baze podataka i ostalo);
. kreirajte nove dokumente od nule;
. kombinirati nekoliko radnji i izvoditi ih u automatski način rada.

Da biste radili s tablicom, možete je sami kreirati ili preuzeti gotovu verziju s Interneta. Makroe treba preuzimati samo sa pouzdanih lokacija, inače možete uneti virus u Excel.

Kako makroi u Excelu mogu biti opasni?

Oštećivanje datoteka na vašem računaru;
. ukrasti povjerljive podatke.

Virus se unosi tokom rada jednog od kancelarijske aplikacije- Word ili Excel. Nakon što prestanete raditi, oni će početi autonomni rad virusa i zaraze čitav sistem.

Drugi način na koji zlonamjerni makro funkcionira je kao posrednik za uvođenje prijetnji u sistem. U ovom slučaju, to je svojevrsna kapija za uvođenje i generiranje trojanskog softvera. Više ga neće kontrolirati modificirani makro, već operativni sistem, pa stoga prijetnja postaje veća. Takve viruse nije uvijek moguće izliječiti, ponekad morate potpuno promijeniti Windows OS ili HDD PC (u zavisnosti od zadataka koje je haker postavio prilikom pisanja koda).

Možete odabrati bilo koju metodu zaštite od takvih makroa. Najpopularnija opcija je povećanje sigurnosnog nivoa programa Excel, ali u ovom slučaju program možda više neće podržavati vaša autorska prava, korisni makroi. Ne biste trebali vjerovati fajlovima iz Nepoznati izvori, jer se mogu zaraziti. Čak i makro primljen sa računara vašeg kolege može biti opasan. Ako vam je prijatelj dao datoteku za rad koja podržava upotrebu makroa, onda prije nego što dozvolite sistemu da je koristi, pojasnite kako je primio ovaj makro.

Najbolja opcija je samoobrazovanje umjetnost kreiranja makroa za vaše potrebe. U tom slučaju možete u potpunosti jamčiti za njihov kvalitet i sigurnost.

Kako snimiti makroe u Excelu

Najlakši način za kreiranje makroa je programiranje direktno u Excel-u. Za to će vam biti potrebna tabela sa unesenim podacima i malo znanja da biste omogućili snimanje takvog koda u programu.

Kreiranje počinje sa menijem Pogled. U njemu trebate odabrati poziciju “Makroi” i naredbu “Snimi makro”. Zatim morate navesti ime bez razmaka, na primjer, "Format" (ako će kod biti odgovoran za promjenu formata teksta ili ćelija).

Nakon toga će sve vaše radnje biti automatski snimljene i konvertovane u makro kod. Na dnu dokumenta pojavit će se dugme sa malim kvadratom (“Stop”), klikom na koji možete zaustaviti snimanje. Na ovaj način možete automatski snimiti makroe u Excel, čije primjere možete dalje analizirati u procesu učenja.

Kako omogućiti makronaredbe u Excelu

Da biste omogućili snimljeni makro u drugim dokumentima, morate ga sačuvati nakon brisanja tabele. Format dokumenta mora biti postavljen kao XLTM (to je onaj koji podržava makroe).

Kada kasnije pristupite dokumentu da biste omogućili makroe u Excelu, prvo ih morate omogućiti u iskačućem prozoru gornja linija. Zatim morate uvesti podatke koje će uređivati ​​makro iz obične CSV tabele. Kada se uvoz završi, potrebno je da se vratite na meni „Prikaz“, tamo izaberete „Makroi“ i na listi pronađete naziv koda koji ste napravili. Na kraju kliknite na dugme „Pokreni“. Nakon toga ćete vidjeti kako program, prema algoritmu koji ste prethodno naveli, izvodi proračune i formatira dokument.

Kako mogu vidjeti kod makroa?

Svi makroi kreirani u Excelu se pišu automatski, bez ljudske intervencije. Program se sam sastavlja programski kod, koji se može otvoriti iz tabele pozivanjem pomoću menija.

Da biste to uradili, morate izvoditi naredbe uzastopno:

Proširite karticu "Prikaz";
. otvorite "Makroi";
. izaberite ime potrebnog makroa;
. Pozovite prozor sa njegovim kodom pomoću dugmeta „Promeni“.

U novom dijaloškom okviru možete uređivati ​​i mijenjati makro. Tamo ćete vidjeti kod koji je program snimio automatski, a možete ručno dodati bilo koju radnju. Nakon spremanja informacija, makro će raditi drugačije prilikom uvoza novih podataka.

Kako pokrenuti makro klikom na ćeliju

Recimo da želite da se makro pokrene kada je odabrana ćelija A1. Da bi ćelija odabrana u Excel-u pokrenula makro, morate dodati programski kod prvom modulu:

Privatni pod radni list_Izmjena izbora (prema vrijednosti cilja kao raspona)
Ako je Target.Address = "$A$1" Tada: Pozovite modul1
End Sub

Najbolji vodič koji će vam pomoći da naučite makroe u Excelu je tutorijal. Postoji više sličnih primjera, a za one koji se tek upoznaju sa svim mogućnostima tabele, ovo je Najbolji način naučite u potpunosti koristiti njegovu funkcionalnost.

Gdje možete naučiti raditi sa makroima?

Postoji nekoliko načina da naučite kako kreirati složenije makroe. Moraju se razlikovati po logici i jasno definiranom slijedu radnji. Takvi makroi se mogu kreirati samo ručnim pisanjem VBA koda. Da biste kreirali složene makroe, morat ćete provesti neko vrijeme učeći zamršenost jezika Vizuelno programiranje Basik.

Danas, da biste naučili sve mogućnosti Excel-a, stvoreni su mnogi specijalni kursevi koji traju po nekoliko sedmica, ali ćete morati putovati u zemlju da biste ih pohađali. Obrazovni centar ili pohađati webinare (što nije uvijek zgodno zbog vremenske razlike). Ali učinkovitiji i jednostavniji način da naučite kako kreirati makroe u Excelu je vodič s primjerima. Možete ga proučavati u bilo koje vrijeme koje vam odgovara, a udžbenici korak po korak pomoći će vam da razvijete različite opcije: od jednostavni kodovi do najsloženijeg. Microsoft Excel je univerzalni uređivač proračunskih tablica koji se može koristiti za rješavanje mnogih složenih problema.

Primjeri

Postoje kodovi koji vam omogućavaju automatizaciju raznih zadataka. Dakle, kao primjer, pogledajmo makro za umetanje reda. izgleda ovako:

Podmakro1()

Čak i ako ne znate ništa o VBA i makroima, bićete inspirisani da saznate više nakon što pročitate neke od trikova i trikova u ovom delu. Ako tek počinjete raditi s makroima, ovdje možete pronaći korisne informacije.

. .

U prethodnim člancima vidjeli ste kako Excel može kontrolirati druge Microsoft aplikacije kao što su Word i Outlook. Ali u isto vrijeme, mogu se koristiti i druge aplikacije Upravljanje Excelom. Na primjer, napisali ste makro za Word ili Access koji kreira Excel tabelu, popunjava je podacima, a zatim je sprema. Excel ne mora nužno [...]

. .

Ovu tehnologiju možete koristiti za Microsoft menadžment Outlook i pošalji emails direktno iz tabele ili kopirajte svoje unose u bilježnici. Naravno, Excel funkcije su takvi da ali e-mail tabela će biti poslata, ali ovaj metod vam omogućava da pošaljete samo dio tabele. Da bi ovaj kod radio, morate imati […]

. .

Ova metoda može biti vrlo korisna, na primjer ako imate standardni dokument sa tabelama ispunjenim makroima podataka iz Excel tabele. Možete pokrenuti makro i podaci će se prenijeti u tabele u Word dokument. Nedavno sam imao zadatak da napišem program za popunjavanje izvještaja o SLA (Service Level Agreement). Izvještaj […]

. .

Makroi se često koriste za automatizaciju rada aplikacija. Svaki makro je niz radnji snimljenih pod određenim imenom. Ako, kada radite s Microsoft Excelom, trebate izvršiti isti niz operacija nekoliko puta (na primjer, složeno formatiranje trenutne ćelije ili dodavanje nova linija popunjavanjem nekih njegovih ćelija formulama), tada možete zapisati ove radnje, i [...]

VBA se smatra standardnim jezikom za skriptiranje Microsoft aplikacije, i sada je uključen u sve Office aplikacije, pa čak i one iz drugih kompanija. Stoga, kada savladate VBA za Excel, možete odmah preći na kreiranje makroa za drugi softver. Microsoft proizvodi. Štaviše, moći ćete kreirati punopravni softverskih proizvoda, istovremeno koristeći funkcije raznih aplikacija.

Kako omogućiti makronaredbe u Excelu

Prema zadanim postavkama, kartica odgovorna za upravljanje makroima i navigaciju u Excelu je skrivena. Za aktiviranje ovu opciju idite na karticu File grupi Opcije. U dijaloškom okviru koji se pojavljuje OpcijeExcel idite na karticu prilagođavanje trake, u desnom kombinovanom okviru, postavite marker nasuprot kartice Developer. Ovi koraci su relevantni za verzije programa Excel 2010 i starije.

Pojavi se na traci novi umetak Developer sa kontrolama automatizacije u Excelu.

Pisanje makronaredbi u Excel-u

U kartici Developer u grupi kod, kliknite na dugme Snimite makro. Pojavit će se okvir za dijalog Snimite makro, koji traži neke informacije o budućem kodu koji se piše. Ako vam je ovo prvi put da kreirate makro, jednostavno kliknite na dugme UREDU. WITH u ovom momentu Excel će zabilježiti svaku radnju korisnika u VBA modulu, bilo da se radi o unosu podataka, formatiranju ili kreiranju grafikona. Da biste zaustavili snimanje makroa, kliknite na dugme Zaustavi snimanje koji je u istoj grupi Kod.

Takođe možete iskoristiti alternativnu opciju za snimanje makroa pomoću dugmeta Snimite makro, koji se nalazi u donjem lijevom kutu Excel radne knjige (desno od statusa Spreman).

Sada možete pogledati listu svih kreiranih makroa klikom na dugme makro, nalazi u grupi Kod. U dijaloškom okviru koji se pojavljuje, možete dati više opisnih imena svojim kodovima ili postaviti prečice na tipkovnici koje će pokrenuti određeni makro. Alternativna opcija za pokretanje ovog prozora znači da pritisnete Alt tasteri+ F8.

Uređivanje makroa

Čestitamo! Napisali ste svoj prvi makro. Bilo bi logično da sada provjerimo koji kod nam je generirao Excel. Generisani kod je napisan u VBA (Visual Basic za aplikacije). Morate ga otvoriti da biste ga vidjeli. UrednikVB(VBE), koji se pokreće pritiskom na Alt + F11 ili dugme VisualBasic na kartici Developer.

Da biste izbjegli zabunu u uređivaču, možete raditi samo sa jednom karticom u radnoj knjizi, listu ili modulu. Ovako urednik izgleda u stvarnom životu.

Predlažem da se u ovoj fazi detaljnije prouči razni prozori i VBA editor meni. Ovo će vam pomoći da uštedite mnogo vremena u budućnosti.

Da vidite kod, kliknite na nit Moduli u prozoru projekata i dvaput kliknite na granu koja se pojavi Modul1 . Editor će otvoriti prozor sa kodom, kao što je prikazano na slici.

Ovdje možete urediti generirani kod koji je napisan tokom rada u Excelu. Na primjer, potrebno je da popunite određenu kolonu vrijednostima od 1 do 10. Već imate prva tri koraka, koji unose vrijednosti 1, 2 i 3 u prve tri ćelije kolone A. Moramo izvršite preostalih sedam koraka.

Ako pogledate gornji kod, vidjet ćete da je makro strukturiran na određeni način. Aplikacija prvo pomjera kursor na ćeliju pomoću naredbe Range("A1").Select, a zatim uređuje njen sadržaj koristeći ActiveCell.FormulaR1C1 = "1". Dakle, za preostale korake možemo ponoviti ove korake, mijenjajući adresu ćelije i vrijednost koju želite upisati u tu ćeliju. Na primjer, da postavite ćeliju A4 na 4, napisali biste:

Opseg("A4"). Odaberite
ActiveCell.FormulaR1C1 = "4"

I ponovite slične korake za preostale vrijednosti.

Kada završite sa uređivanjem, sačuvajte svoju knjigu. Makro možete pokrenuti pritiskom na dugme F5 ili, vraćajući se na Excel radnu svesku, idite na karticu Developer grupi Kod -> Makroi i sa liste izaberite makro koji vas zanima.

Odvojite nekoliko minuta da pažljivo proučite kod koji je Excel generirao. Ako ste početnik, ulaganje nekoliko minuta u učenje koda će dati zadivljujuće rezultate u upoznavanju. VBA objekti dalje. Imajte na umu da je primjer o kojem smo raspravljali samo ilustracija. Postoje brži i efikasne načine postizanje sličnih rezultata, o čemu ćemo kasnije raspravljati.

Povećajte brzinu izvršavanja Excel makroa

Zasada je dobro. Pogledajmo nekoliko trikova koji će vam pomoći da ubrzate izvršavanje makroa. Uzmimo gornji isječak koda kao primjer. Moderni kompjuteriće raditi na dotičnom kodu tako brzo da ga nećete ni primijetiti. Ali šta ako morate izvršiti operaciju 50.000 puta. Ovo će potrajati. Ako je makro koji pišete dugačak stotine redova, možete ubrzati izvršavanje koda tako što ćete smanjiti dio procesa koji se ne koristi tokom izvršavanja makroa.

Korištenje naredbe Application.ScreenUpdating

Prvi trik je izbjeći ažuriranje ekrana dok je makro pokrenut. Ovo će omogućiti Excelu da uštedi procesorsku snagu računara i ažurira ekran novim vrijednostima tek nakon što se izvrši sav kod. Da biste to učinili, morate dodati naredbu za onemogućavanje osvježavanja ekrana na početku makroa i naredbu za omogućavanje osvježavanja ekrana na kraju makroa.

1
2
3
4
5
6
7
8
9
10

Podmakro1()

Opseg("A1"). Odaberite

Opseg("A2"). Odaberite

Opseg("A3"). Odaberite


End Sub

Naredba Application.ScreenUpdating govori Excelu da prestane prikazivati ​​preračunate podatke na ekranu i umjesto toga prikaže spremne vrednosti na kraju izvršavanja koda.

Korištenje naredbe Application. Kalkulacija

Drugi trik je da onemogućite automatske proračune. Dopusti mi da objasnim. Svaki put kada korisnik ili proces ažurira ćeliju, Excel pokušava ponovo izračunati sve ćelije koje ovise o njoj. Recimo da ako ćelija koju makro pokušava ažurirati utiče na 10.000 drugih ćelija, Excel će pokušati da ih sve ponovo izračuna prije nego što kod završi izvršavanje. Shodno tome, ako postoji određeni broj ćelija koje utiču, ponovno izračunavanje može značajno usporiti izvršenje koda. Da biste spriječili da se to dogodi, možete instalirati naredbu Application. Izračun na početku koda, koji će prebaciti ponovno izračunavanje formula na ručni način rada a zatim vratite automatski proračun na kraju makroa.

1
2
3
4
5
6
7
8
9
10
11
12

Podmakro1()
Application.ScreenUpdating = False

Opseg("A1"). Odaberite
ActiveCell.FormulaR1C1 = "1"
Opseg("A2"). Odaberite
ActiveCell.FormulaR1C1 = "2"
Opseg("A3"). Odaberite
ActiveCell.FormulaR1C1 = "3"

Application.ScreenUpdating = Tačno
End Sub

Pazite da ne zaboravite vratiti ovu opciju u automatski način rada na kraju makroa. U suprotnom, morat ćete to učiniti u samom Excelu klikom na karticu Formule grupi Kalkulacija i biraj Opcije proračuna –> Automatski.

Izbjegavanje odabira ćelija i raspona

U modu automatsko snimanje makronaredbi, možete primijetiti da Excel vrlo često koristi naredbu za odabir ćelije, na primjer, Range("A1").Select. U našem primjeru koristili smo ovu naredbu više puta da odaberete ćeliju i promijenite njenu vrijednost. Ovo možete izbjeći jednostavnim navođenjem adrese ćelije i davanjem potrebne vrijednosti (Makro je snimio kretanje kursora od jedne ćelije do druge, stoga je umetnuo ove korake. Međutim, oni nisu neophodni). Dakle, efikasniji kod bi izgledao ovako.

1
2
3
4
5
6
7
8
9
10
11

Podmakro1()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Raspon("A1").Vrijednost = 1
Opseg("A2").Vrijednost = 2
Opseg("A3").Vrijednost = 3
Raspon("A4").Vrijednost = 4
Raspon("A5").Vrijednost = 5
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = Tačno
End Sub

IN u ovom slučaju jednostavno smo referencirali ćeliju i dali joj potrebnu vrijednost, a da je uopće nismo odabrali. Ova metoda je brža od prethodne.

Excel makro primjeri

Ispod su neki uzorci VBA kodova koji će vam pomoći da automatizujete najčešće zadatke.

Dobar dan

Ovaj članak želim posvetiti tako velikom dijelu MS Excel-a kao što su makroi, odnosno, počnimo od početka i pogledajmo kako napraviti makro u Excelu, čemu služi i kako ga koristiti u svom radu.

Kao što znate iz sopstveno iskustvo, pri radu sa makroom postoji puno „rutine“, odnosno izvode se iste operacije i radnje koje su neophodne za dobijanje rezultata, to može biti popunjavanje iste vrste tabela ili obrazaca, obrada podataka, slično kao blizanci sedmični, mjesečni izvještaji itd. Ali korištenje makronaredbi omogućit će vam da ove radnje izvršite automatski, koristeći Excel mogućnosti do maksimuma, bacivši ove rutinske i monotone operacije na moćna ramena Excel-a. Također, razlog za korištenje makronaredbi može biti dodavanje potrebne mogućnosti, koji još nisu implementirani u standardne karakteristike Excel (na primjer, izlaz, prikupljanje podataka na jednom listu, itd.).

Ako nikada niste čuli za makro, najpreciznija definicija bi bila: to su akcije koje su programirane za određeni niz i snimljene u programskom okruženju u Vizuelni jezik Osnovno za aplikacije (VBA). Pokretanje makronaredbe može se izvršiti više puta i to će prisiliti Excel da izvrši bilo koji slijed radnji koje su nam potrebne, a koje jednostavno ne volimo ili ne želimo raditi ručno. Unatoč velikoj raznolikosti programskih jezika za cijeli Microsoft Office kompleks, VBA je standard i radi u bilo kojoj aplikaciji u uredskom paketu.

Dakle, postoje 2 načina da kreirate makro u Excelu:

Kreirajte makro u Excelukoristeći makro snimač

Prvo, hajde da razjasnimo šta je makro snimač i kakve veze ima makro sa njim.

Makro snimač je mali program ugrađen u Excel koji interpretira svaku radnju korisnika u kodovima VBA programskog jezika i upisuje komande dobijene tokom procesa rada u programski modul. Odnosno, ako kreiramo dnevni izvještaj koji nam je potreban s uključenim snimačem makroa, makro snimač će snimati sve u svojim naredbama korak po korak i, kao rezultat, kreirati makro koji će automatski kreirati dnevni izvještaj.

Ova metoda je veoma korisna za one koji nemaju veštine i znanja za rad u VBA jezičkom okruženju. Ali takva jednostavnost izvođenja i snimanja makroa ima svoje nedostatke, kao i svoje prednosti:

  • Makro snimač može snimiti samo ono što može dodirnuti, što znači da može snimati radnje samo kada se koriste dugmad, ikone, komande menija i sve slično; takve opcije mu nisu dostupne;
  • Ako je greška napravljena tokom perioda snimanja, ona će također biti snimljena. Ali možete koristiti dugme za otkazivanje poslednja akcija, obrišite poslednju komandu koju ste pogrešno napisali u VBA;
  • Snimanje u makro snimaču se vrši samo u granicama prozora MS Excel, a ako zatvorite program ili uključite drugi, snimanje će se zaustaviti i više se neće izvoditi.

Da biste omogućili snimanje makroa za snimanje, morate izvršiti sljedeće korake:


Sljedeći korak u radu sa snimačem makroa bit će konfiguriranje njegovih parametara za dalje snimanje makroa; to se može učiniti u prozoru "Snimi makro", Gdje:

  • Polje imena makroa- možete napisati ime koje razumete na bilo kom jeziku, ali mora da počinje slovom i ne sadrži znakove interpunkcije ili razmake;
  • Polje za prečice na tastaturi- će se koristiti u budućnosti za Brzi početak vaš makro. U slučaju da trebate registrovati novu, ova opcija će biti dostupna u meniju "Alati" - "Makro" - "Makroi" - "Pokreni" ili na kartici "Programer" pritiskom na dugme "Makroi";
  • Polje "Sačuvaj u...".— možete odrediti lokaciju na kojoj će makro tekst biti sačuvan (ali neće biti poslan), a postoje 3 opcije:
    • "Ova knjiga"— makro će biti upisan u modul trenutne radne knjige i može se izvršiti samo ako je dat Excel radna sveskaće biti otvoren;
    • "nova knjiga"— makro će biti sačuvan u šablonu na osnovu kojeg se kreira prazan šablon u Excel-u Nova knjiga, što znači da će makro postati dostupan u svim radnim sveskama koje će od sada biti kreirane na ovom računaru;
    • "Personal Macro Book"- je posebna Excel radna sveska makroa pod nazivom "Personal.xls" i koristi se kao posebna biblioteka za skladištenje makroa. Prilikom pokretanja, makroi iz radne knjige “Personal.xls” se učitavaju u memoriju i mogu se pokrenuti u bilo kojoj radnoj svesci u bilo koje vrijeme.
  • Polje "Opis".- ovdje možete opisati šta bi makro trebao raditi i kako, zašto je kreiran i koje funkcije ima, ovo je čisto informativno polje, koje se zove memorija.

Nakon što pokrenete i snimite svoj makro, dovršite sve neophodne radnje, snimanje se može zaustaviti komandom "Zaustavi snimanje" i vaš makro će biti kreiran pomoću snimača makroa.

Kreirajte makro u Exceluu Visual Basic editoru.

U ovoj metodi ćemo pogledati kako napraviti makro u Excelu kroz VBA program editor koji je, kao što sam rekao gore, ugrađen u bilo koju verziju Excel-a.

Pokretanje VBA uređivača programa odvija se drugačije, ovisno o verziji vašeg Excel programa:

  • u verzijama programa Excel 2003 i novijim, trebamo u meniju "Usluga", odaberite stavku "makro" i pritisnite "Visual Basic Editor";
  • u verzijama programa Excel 2007 i novijim, trebamo na kartici "Programer" pritisnite dugme "Visual Basic Editor". Ako ne pronađete ovu karticu, morate je aktivirati odabirom stavke menija “Datoteka” - “Opcije” - “Prilagodi traku” a u dijaloškom okviru koristite potvrdni okvir da aktivirate karticu "Programer".

U prozoru koji se otvori vidi se interfejs VBA editora, ovde je sve napisano na engleskom i nema lokalizacije, ne morate da ga tražite, već samo prihvatite i radite, pogotovo što je samo nerazumljivo prvo, a onda će sve biti poznato.

Dakle, kako raditi u VBA editoru, gdje se šta čuva i kako napraviti makro u Excelu. Pitanja ove prirode nastaju odmah čim vidite urednika, a sada ćemo ih razmotriti sva.

Svi naši makroi će biti pohranjeni u tzv softverski moduli. U bilo kojoj od knjiga Excel verzije možemo kreirati bilo koje softverski moduli u bilo kojoj količini i stavite sve makroe koje kreiramo u njih. Jedan modul može sadržavati bilo koji broj makroa koje trebate ili kreirate. Moduli su dostupni u prozoru "Istraživač projekta" i nalaze se u gornjem lijevom uglu uređivača makroa (možete ga pozvati i kombinacijom tipki CTRL+R).

Programski moduli u VBA editoru postoje u nekoliko tipova i na njih su navikli različite opcije i situacije:


Zapravo, sam makro, kada radi u standardnom modulu, izgleda ovako:

Pogledajmo primjer funkcionalnog makroa:

  • Svi makroi će nužno početi sa operatorom Sub, nakon čega slijedi ime vašeg makroa i lista argumenata u zagradama. U slučajevima kada nema argumenata, zagrade treba ostaviti prazne;
  • Svi makroi moraju završavati sa operatorom End Sub;
  • Podaci koji se nalaze između operatera Sub I End Sub, je tijelo makroa koje će se pokrenuti kada se makro pokrene. U primjeru, makro provjerava i, prilikom unosa podataka, pronalazi ga u listi baze podataka i prikazuje vrijednost specificiranu kriterijima.

Kao što vidite, drugu metodu je teže koristiti i razumeti ako nemate iskustva u programiranju uopšte ili posebno u VBA. Vrlo je teško razumjeti i shvatiti koje se komande unose i kako, koje argumente koristi da bi makro automatski počeo da radi svoj posao. Ali onaj ko hoda savladaće put, kako su govorili drevni mudraci, i zato ne treba odustajati, već slediti zapovesti dede Lenjina...

Kreiranje dugmeta za pokretanje makroa na traci sa alatkama

Kao što sam ranije rekao, možete pozvati makro proceduru vruća kombinacija tastere, ali je veoma zamorno pamtiti koja kombinacija je kome dodeljena, tako da bi najbolje bilo da kreirate dugme za pokretanje makroa. Dugmad se mogu kreirati u nekoliko tipova, i to:


Ova metoda je dostupna za bilo koju verziju MS Excel-a i sastoji se u tome da ćemo dugme postaviti direktno na naš radni list kao grafički objekat. Da biste to uradili potrebno vam je:

  • U MS Excelu 2003 i starijim idite na meni "Pogled", izaberite "Traka sa alatkama" i pritisnite dugme "obrasci".
  • U MS Excel 2007 i novijim verzijama trebate na kartici "Programer" otvori padajući meni "ubaci" i izaberite objekat "dugme".

Nakon svega ovoga, morate nacrtati dugme na svom listu dok držite pritisnutu lijevu tipku miša. Nakon što je proces crtanja završen, automatski će se otvoriti prozor u kojem ćete trebati odabrati makro koji je potreban da se izvrši kada kliknete na vaše dugme.

Kako kreirati prilagođene funkcije u VBA

U principu, kreiranje takozvanih korisnički definiranih funkcija ne razlikuje se mnogo od kreiranja običan makro u standardnom softverskom modulu. Razlika između ovih koncepata je u tome što će makro izvršavati radnje sadržane u njemu s objektima knjige ili lista (to su formule, ćelije itd.), ali korisnička funkcija radi samo s vrijednostima koje prima od nas a ovo su argumenti početni podaci za proračune.

Na primjer, za stvaranje prilagođena funkcija porez na dodatu vrijednost, aka PDV, trebamo otvoriti naš VBA editor i dodati novi modul, izaberite iz menija "ubaci" stav "Modul" i tamo unesite tekst za našu funkciju: Treba napomenuti da je glavna razlika između funkcije i makroa zaglavlje Funkcija zamijenjen Sub i postoji kompletna lista argumenata, u našem primjeru ovo je Summa. Nakon što unesemo naš kod, on će postati dostupan u standardni prozorČarobnjak za funkcije, koji se nalazi u meniju "Formule", stav "Insert Function".
I odaberite kategoriju "Definisano od strane korisnika" u kojoj će biti prikazana naša napisana funkcija "NDS".
Nakon odabira naše funkcije, možete postaviti kursor na ćeliju sa argumentom, koja će sadržavati iznos za koji obračunavamo PDV, sve se dešava isto kao i sa normalna funkcija.
I to je sve za mene! Zaista se tome nadamčlanak o tome kako napraviti makro u Excelu Vama je bilo jasno i korisno. Bio bih vam veoma zahvalan na komentarima, jer je to pokazatelj čitljivosti i inspiriše me da pišem nove članke! Podijelite ono što ste pročitali sa svojim prijateljima i lajkujte!

Najbolji članci na ovu temu