Makroprogramovanie vo VBA pre MS Word a Excel
Makro je sled príkazov, ktorého cieľom je automatizovať niektoré pracovné postupy, vylúčiť
tak opakované operácie (nemusíte ich stále opisovať) a znížiť počet prípadných chýb pri spracovaníúdajov.
Makrá môžu predstavovať aj potenciálne riziko pre zabezpečenie – škodlivé makro môže byť nejakým hackerom vložené do dokumentu a po jeho otvorení je umožnené makru rozšíriť vírus do počítača.
Makrá nie sú špecialitou kancelárskeho balíka MS Office, môžeme ich nájsť aj v iných aplikáciách (OpenOffice, Corel Draw,...).
Záznamové makro
Niektoré makrá sú len jednoduchým záznamom úderov na klávesnicu alebo kliknutí myšou. Takéto makrá nazývame záznamové. A na čo je to dobré?
Tento sled operácii nabudúce už nemusíme vykonávať, postačí len stlačiť klávesovú skratku pre spustenie makra. Makro sa spustí a zrealizuje všetky operácie v ňom uložené. Podstatne šetrí čas.
Výhodou je, že na záznam takéhoto makra nemusíme ovládať daný programovací jazyk. No ak chceme takýto záznam upravovať alebo si vytvoriť vlastné makro, tak Visual Basic for Applications už musíme vedieť ovládať.
Existujú dva typy makier:
Lokálne makro je vytvorené a uložené v konkrétnom dokumente a môže byť použité iba v
tomto dokumente.
Makrá v rámci dokumentu sa môžu vyskytovať:
v štandardných moduloch – procedúry môžeme spúšťať z ľubovoľného miesta dokumentu
v module kódu ThisDocument („Dokument“)
– môže obsahovať špeciálne makrá, ktoré sa automaticky spúšťajú pri otvorení dokumentu, pred jeho uložením, ...
Globálne makro je uložené v šablóne dokumentu makier a môže byť použité v ľubovoľnom dokumente.
Aký je rozdiel medzi makrom a procedúrou?
Makro je procedúra bez parametrov, ktorú môžeme nahrať a je ju možné spustiť z ľubovoľného miesta MS Word vrátane dialógového okna „Makro“. Každá procedúra nemusí byť makrom, ale každé makro je procedúrou. Obecne platí, že všetky procedúry, ktoré môžeme spustiť z dialógového okna „Makro“ patria medzi makrá.
Popis vzhľadu editora jazyka Visual Basic
Ako vytvoriť záznamové makro?
1. Vyberte z ponuky Vývojár -> Makrá a kliknite na príkaz Zaznamenať makro.
2. Do poľa Názov makra zadajte názov makra.
3. Ak je to potrebné, priraďte makru klávesovú skratku.
4. Ak je to potrebné, zadajte popis makra a kliknite na tlačidlo OK.
5. Preveďte kroky, ktoré chcete zahrnúťdo makra.
6. Zastavte záznam makra cez Vývojár-> Zastaviť záznam.
Keď makro budete chcieť znova použiť, tak ho môžete spustiť viacerými spôsobmi:
Môžete ho nájsť v ponuke uložených makier cez postupné odklikávanie: Vývojár -> Makrá.
Vyberiete makro ktoré potrebujete, vo vašom prípade makro s menom, ktoré ste vášmu makru dali pred začatím jeho zaznamenávania a stlačíte Spustiť.
Makro sa potom vykoná.
Ak chcete mať k vášmu makru rýchlejší prístup, tak mu priradíte klávesovú skratku ešte pred
začiatkom jeho záznamu. Po skončení záznamu už budete môcť vaše makro spúšťať prostým stlačením navolenej klávesovej skratky.
ÚLOHA – záznamové makro
A. Otvoríte aplikáciu MS Word a do nového dokumentu napíšeme vetu:
„Učíme sa ako vytvoriť záznamové makro.“ (text len napíšeme, neformátujeme!):
Najprv si ukážeme záznam makra, v ktorom objekt vyberieme až po začatí nahrávania:
Postupne (pracujeme podľa stručného postupu, ktorý sme mali predtým) vyberáme Vývojár
-> Záznam nového makra.
Do poľa Názov makra zadáme názov makra:
Pokus1 (ak by sme zadali nevhodný názov makra,
tak nás na to MS Word upozorní hláškou: „Tento
názov nie je platný.“ ).
• Makru priraďte klávesovú skratku napr. CTRL+q.
• Kliknime na tlačidlo OK.
• Označíme si celý text a vyberieme na karte Domov Písmo: Arial, Rez písma: Tučné, Veľkosť: 10, Farba: červená.
• Cez Vývojár -> Zastaviť záznam (modrý štvorček) zastavíme záznam makra.
B. Nahrajte si rovnakým spôsobom druhé makro Pokus2 (priradíme klávesovú skratku ctrl+w), ktoré bude robiť to isté, len s tým rozdielom, že objekt (iba jedno slovo) tentoraz vyberte ešte pred spustením záznamu. Celý postup si teda zopakujte, len poradie
krokov bude iné. Pred nahraním makra vráťte akciu späť (krok späť, aby sme mali pôvodnú vetu)
Ak ste proces nahrávania makier úspešne ukončili, teraz si vyskúšame ich spustenie a následne zistíme praktické rozdiely, aj keď ich činnosť vyzerá úplne rovnako.
Otvorme si nový dokument, napíšeme vetu: „ Overujeme funkciu záznamového makra“. Najprv stlačíme ctrl+q, pozrieme sa čo sa stalo s textom, potom dáme krok späť, vyberieme jedno slovo z textu a stlačíme ctrl+w. Ukážeme si rozdiel medzi oboma makrami.
Čo z tejto úlohy vyplýva?
Z tejto úlohy vyplýva, že ak pred nahrávaním makra označíme oblasť alebo objekt, bude nahrané makro neskôr vždy pracovať s aktuálne vybranou oblasťou či objektom.
Kód makra, ktoré sme nahrali si môžete pozrieť cez voľbu Vývojár ->Makrá (Alt + F11), ktorou spustíme editor VBA, následným rozbalením položky Modules a dvojitým kliknutím na konkrétny modul.
ÚLOHY
A.
Napíšte makro pre MS Word s názvom
Ahoj,
ktoré pomocou ovládacieho prvku MsgBox vypíše text „Dnes je krásny deň a niečo nové sa naučíme☺ “.
B.
Napíšte makro pre MS Word s názvom
Nazov_dokumentu,
ktoré po spustení vypíše názov otvoreného dokumentu pomocou ovládacieho prvku MsgBox a po potvrdení OK opäť pomocou ovládacieho prvku MsgBox vypíše, koľko má otvorený dokument strán.
C.
Napíšte makro pre MS Word s názvom
Pismo_zelene,
ktoré po spustení pre akýkoľvek vybratý objekt (slovo, odstavec alebo celý dokument) zmení farbu písma na zelenú.