Kada bilježi vaše radnje, Excel obično bilježi apsolutne reference na ćelije. (Ovo je zadani način snimanja.) Ali vrlo često, ovo je pogrešan način snimanja. Ako koristite način apsolutnog snimanja, Excel bilježi stvarne reference ćelija. Ako koristite relativno snimanje, Excel bilježi relativne reference na ćelije. Nastavite čitati da vidite razliku.
Snimanje u apsolutnom načinu rada
Slijedite ove korake za snimanje jednostavne makronaredbe u apsolutnom načinu. Ova makronaredba jednostavno unosi imena tri mjeseca u radni list:
Uvjerite se da gumb Razvojni programer → Kod → Koristi relativne reference nije označen, a zatim odaberite Programer → Kod → Snimi makronaredbu.
Upišite Absolute kao naziv za ovu makronaredbu.
Kliknite OK za početak snimanja.
Aktivirajte ćeliju B1 i upišite Jan u tu ćeliju.
Prijeđite na ćeliju C1 i upišite Feb.
Prijeđite na ćeliju D1 i upišite Mar.
Kliknite ćeliju B1 da biste je ponovno aktivirali.
Zaustavite snimač makroa.
Pritisnite Alt+F11 da aktivirate VBE.
Pregledajte modul Module1.
Excel generira sljedeći kod:
Podapsolutni()
'
' Apsolutni makro
'
Raspon (“B1”). Odaberite
ActiveCell.FormulaR1C1 = "siječanj"
Raspon (“C1”). Odaberite
ActiveCell.FormulaR1C1 = "veljače"
Raspon (“D1”). Odaberite
ActiveCell.FormulaR1C1 = "Ožujak"
Raspon (“B1”). Odaberite
Kraj Sub
Kada se izvrši, ovaj makro odabire ćeliju B1 i umeće imena tri mjeseca u raspon B1:D1. Tada makro ponovno aktivira ćeliju B1.
Te se iste radnje događaju bez obzira koja je ćelija aktivna kada izvršite makronaredbu. Makronaredba snimljena korištenjem apsolutnih referenci uvijek daje iste rezultate kada se izvrši. U tom slučaju makronaredba uvijek unosi nazive prva tri mjeseca u rasponu B1:D1 na aktivnom radnom listu.
Snimanje u relativnom načinu
U nekim slučajevima želite da vaša snimljena makronaredba radi s lokacijama ćelija na relativan način. Možda želite da makronaredba počne unositi nazive mjeseci u aktivnu ćeliju. U tom slučaju morate koristiti relativno snimanje.
Možete promijeniti način na koji Excel bilježi vaše radnje klikom na gumb Koristi relativne reference u grupi Kod na kartici Razvojni programer. Ovaj gumb je preklopni gumb. Kada se gumb pojavi istaknut drugom bojom, način snimanja je relativan. Kada se tipka pojavi normalno, snimate u apsolutnom načinu rada.
Možete promijeniti način snimanja u bilo kojem trenutku, čak i usred snimanja.
Da biste vidjeli kako funkcionira relativni način snimanja, izbrišite sadržaj raspona B1:D1 i zatim izvršite sljedeće korake:
Aktivirajte ćeliju B1.
Odaberite Developer → Code → Record Macro.
Imenujte ovu makronaredbu Relative.
Kliknite OK za početak snimanja.
Kliknite gumb Koristi relativne reference za promjenu načina snimanja u relativni.
Kada kliknete ovaj gumb, mijenja se u drugu boju od ostatka vrpce.
Upišite Jan u ćeliju B1.
Prijeđite na ćeliju C1 i upišite Feb.
Prijeđite na ćeliju D1 i upišite Mar.
Odaberite ćeliju B1.
Zaustavite snimač makroa.
Primijetite da se ovaj postupak malo razlikuje od prethodnog primjera. U ovom primjeru aktivirate početnu ćeliju prije početka snimanja. Ovo je važan korak kada snimate makronaredbe koje koriste aktivnu ćeliju kao bazu.
Ova makronaredba uvijek počinje unositi tekst u aktivnu ćeliju. Probaj. Pomaknite pokazivač ćelije na bilo koju ćeliju i zatim izvršite relativnu makronaredbu. Nazivi mjeseci uvijek se unose počevši od aktivne ćelije.
S načinom snimanja postavljenim na relativno, kod koji Excel generira prilično se razlikuje od koda generiranog u apsolutnom načinu:
Podrelativ()
'
'Relativni makro
'
ActiveCell.FormulaR1C1 = "siječanj"
ActiveCell.Offset(0, 1).Range(“A1”).Odaberi
ActiveCell.FormulaR1C1 = "veljače"
ActiveCell.Offset(0, 1).Range(“A1”).Odaberi
ActiveCell.FormulaR1C1 = "Ožujak"
ActiveCell.Offset(0, -2).Range(“A1”).Odaberi
Kraj Sub
Da biste testirali ovu makronaredbu, aktivirajte bilo koju ćeliju osim B1. Nazivi mjeseci unose se u tri ćelije, počevši od ćelije koju ste aktivirali.
Primijetite da se kod koji generira makro snimač odnosi na ćeliju A1. Ovo se može činiti čudnim jer nikada niste koristili ćeliju A1 tijekom snimanja makronaredbe. Ovo je jednostavno nusprodukt načina rada snimača makroa.