You are on page 1of 4

-1-

HOME

Osnove VBA

1.1

Sadraj

1.2

Uvod u VBA

1.3

Izvoenje Macro-a

1.4

Reference

1.5

VBE - prozor

1.6

Snimanje Macro-a

1.7

Primjeri Macro koda

Procedure

Kontrola toka programa

3.2
3.3
4
5
6
7
8
9

MICROSOFT EXCEL 2003 - VBE i VBA - Kako snimiti i pokrenuti Macro u Excelu 2007

Kako snimiti i pokrenuti Macro u Excelu 2007

Snimanje i pokretanje Macro-a


(Makronaredbe)

Macro kod ne morate sami pisati ako ga ne znate (ali je poeljno znati). U Excelu imate mogunost odraditi neku radnju i
Niz, String, Function
snimiti je u obliku Macro koda u dotinu Workbook u kojoj radite. Ovu rije "snimanje" shvatite doslovno ali i ne zdravo za
Rad sa modulima
gotovo.
Events - Dogaaji
Kada se misli na snimanje Macro koda tada ono ima svoje specifinosti. Znate i sami da recimo nekakvo snimanje zvuka ili
Svojstva - Properties
tona moete odradti na radiokasetofonu i snimiti sebe kako "pjevate". To snimanje ukljuuje svaku proteklu sekundu
Metode
vremena tokom snimanja, dakle i pauze i kaljucanje i sve ostalo :-)
Svojstva i metode
Kod snimanja Macro naredbe u Excelu takoer se vri snimanje svakog koraka ali se ne pamte pauze. Znai vi moete
Objekti - Objects
zapoeti snimanje nekakve planirane radnje (sa to manje koraka) i u pola radnje stati (otii na kavu) i vratiti se pa nastaviti

snimanje. Excel e napisati Macro kod kao da te pauze nije bilo. To snimanje e se manifestirati nekakvim skupom
RAZNO
poredanih linija koda, onako kako smo mi klikali miem u Excelu dok smo vrili planiranu radnji koja se snimala.
Razni primjeri VBA u NAPOMENA: Budite oprezni kod izvoenja (pokretanja) Macro koda (Makronaredbe). Poslije pokretanja Macro-a ne
Excelu
moete vratiti na prethodno stanje (ne funkcionira naredba UNDO) osim kod nekih specijalno ureenih Macro kodova.

Zato neke stvari uvijek radite na kopiji Workbook.

Petlje

Kako snimiti Macro (Makronaredbu) u


Excelu
Uzmimo za primjer da pomou Macro koda elimo kopirati raspon elija A1:A5 sa "Podaci" na "tablica2" u raspon (range)
elija C1:C5. Dobro isplaniramo koliko puta i gdje emo kliknuti miem, da ne stvaramo viak linija koda. (pazite, svaki klik
na eliju,naredbu, selektiranje elija itd.. VBA pamti kao liniju koda)
Dakle, ako ste sve isplanirali kako treba (nacrtali na papiru :-) krenimo sa snimanjem prve makronaredbe u Excelu.
- Postavite tj. selektirajte prvo eliju A1 i neka nam ona bude polazna toka.
- Na tabu ribona Developer kliknite na gumb Record Macro.
- Pojavljuje vam se dijalog prozor u kojem moete mijenjati neke parametre

Nakon popunjenih ili izabranih parametara kliknite na OK. Vodite rauna da naziv Macro-a (makronardbe) nema blanko
znakova niti razmaka izmeu rijei, kao ni to da prva znamenka u nazivu bude broj (o ovome e biti rijei u obradi teme
Subprocedure). Takoer vodite rauna da ne dodijelite Macro-u preac (shortcut) koji je ve definiran u Excelu (poput Ctrl
+C, Ctrl+V, Ctrl+P, itd... pogledajte tutorijal Preaci u Excelu)
- Kada ste kliknuli na gumb OK dijalog prozor nestaje i vi ste pozicionirani na radni list (Sheet) "Podaci".
- Miem selektirajte elije od A1:A5.
- Nakon selekcije kliknite desnom tipkom mia (DTM) na selektirano podruje pa izaberite Copy (Kopiraj),
- Sada klikniteite na radni list (Sheet) "tablica2"
- Selektirajte eliju C1
- DTM pa klik na Paste (Zalijepi)
- Sada kliknite na gumb za zaustavljanje snimanja Macro-a

-2-

Kako pregledati kod i pokrenuti


Macro (Makronaredbu) u Excelu
Sada kada smo snimili nau Macronaredbu idemo vidjeti kako
moemo pokrenuti ili pregledati kod (code) nae snimljene radnje.
Da bi manualno pokrenuli dijalog prozor za pristup snimljenim
Makronaredbama, potrebno je pritisnuti kombinaciju ALT+F8 ili
kliknuti na gumb Macros na tabu Developer. Nakon toga pojavljuje
nam se dijalog prozor sa svim Macro-ima koje imamo u naoj
Workbook (radnoj knjizi).
Uoite na dijalog prozoru "Macro" gumbe pomou kojih moete:
- Run => Pokrenuti makronaredbu
- Step Into => korak po korak odraditi svaku liniju koda
- Edit => izvriti promjene na kodu
- Delete => Obrisati makronaredbu
- Options => eventualno promijeniti opis ili dodati preac
- Macros in: => pogledati Makronaredbe u specifinoj knjizi
Idemo kliknuti na gumb Edit da vidimo kako izgleda na Macro
Klikom na gumb Edit, otvara vam se VBE i pozicionirani ste na Module1 u koji se snimio na Macro. Uoite linije koda.
Tutorijal, Kako kreirati Macro Button u Excelu 2007 (KLIKNI OVJDE)

-3-

Ovo je Macro kod koji se snimio tokom snimanja planirane operacije (radnje).
Uoite linije tj. dijelove koda koji su zelene boje. To su KOMENTARI koda i njegovih dijelova. Komentar poinje znakom
APOSTROFA (')
----------------------------------------------------------------Sub Macro1() 'ovo je naziv macronaredbe i poetak sa prefiksom SUB
'
' Macro1 Macro
' Ovaj makro kopira sa sheeta Podaci na Sheet tablica2
'
'
Range("A1:A5").Select 'selektiranje range elija A1:A5
Selection.Copy 'ovo je linija koda koja se kreirala u momentu kada smo kliknuli na opciju Copy
Sheets("tablica2").Select 'momenat kada smo kliknuli na Sheet "tablica2"
Range("C1").Select 'momenat kada smo kliknuli na eliju C1
ActiveSheet.Paste 'momenat kada smo kliknuli na opciju Paste
Columns("C:C").EntireColumn.AutoFit 'momenat kada sam proirio stupac C
End Sub 'kraj makronredbe
-----------------------------------------------------------------

IZMJENE MACRO KODA RUNO


I na kraju mogu samo rei slijedee: Kada bi ovu Makronaredbu preuredili manualno tj. izmjenili joj neke dijelove koda ona
bi odradila istu radnju ali sa drugim elijama. npr: range elija B10:B20 kopirati na Sheet LIST1 u stupac G, tada bi ovaj
Macro kod izgledao ovako:
----------------------------------------------------------------Sub Macro1() 'ovo je naziv macronaredbe i poetak sa prefiksom SUB
'
' Macro1 Macro
' Ovaj makro kopira sa sheeta Podaci na Sheet tablica2
'
'
Range("B10:B20").Select 'selektiranje range elija B10:B20
Selection.Copy 'ovo je linija koda koja se kreirala u momentu kada smo kliknuli na opciju Copy
Sheets("LIST1").Select 'momenat kada smo kliknuli na Sheet "tablica2"
Range("G1").Select 'momenat kada smo kliknuli na eliju C1
ActiveSheet.Paste 'momenat kada smo kliknuli na opciju Paste
Columns("G:G").EntireColumn.AutoFit 'momenat kada sam proirio stupac C
End Sub 'kraj makronredbe

--------------------------------------------

-4-

---------------------Ovaj Macro iznad moe se pisati i u


kraem obliku (ali o tome kasnije)

Macronaredba - naredbena linija u


dva reda (ili vie redova)
Jedna naredbena linija koda u Macro kodu moe biti dugaka koliko je potrebno. Meutim, radi estetike, moe se jedna
naredbena linija koda napisati u dva reda (ili vie rdova). Da biste to uinili, umetnite razmak ispred dijela koda koji elite
prebaciti u drugi red i dodajte podvlaku (underline) (_). U novom redu naredbene linije nastavite pisati kod. Sada imate dva
reda naredbene linije koda a u stvari VBA to vidi kao jednu liniju koda jer je spojena sa underline. Iza underline znaka ne
smijete stavljati komentare.
NPR: Ovaj dio Macro koda ispod je jedna naredbena linija koda ali presjeena na etiri dijela. (uoite underline)
ActiveSheet.ExportAsFixedFormat _ => (prvi dio)
Type:=xlTypePDF, _ => (drugi dio)
Filename:=txtIme, _ => (trei dio)
OpenAfterPublish:=False => (etvrti dio)

Ili ovaj nain pisanja u dva naredbena reda jedne naredbe (izjave)
Sheets("Sheet1").Range("B10").Value = _
Sheets("Sheet1").Range("A10").Value
Koju smo mogli pisati i ovako
Sheets("Sheet1").Range("B10").Value = Sheets("Sheet1").Range("A10").Value
Isprobajte (poigrajte se izmjenama) pa pokrenite Macro preko Alt+F8 => Run

You might also like