IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Úvod do tvorby maker pro Microsoft Office

S makry se můžeme setkat v Microsoft Office. Lze je vytvářet tedy nejen pro Excel, ale i pro Word a další aplikace v tomto balíku. Jedná se o programy ve Visual Basicu, které umožňují zaznamenat a provádět nějakou posloupnost akcí.

Uvědomme si, že Visual Basic je stejný pro všechny aplikace Office (které se liší jen v dostupných třídách a objektech). A právě proto si v této lekci zkusíme naše první makra ve Wordu, přestože se nadále budeme zabývat zejména makry v Excelu.

Makro lze použít pro opakované činnosti sestávající z několika kroků, ale v Excelu si lze vytvářet i vlastní funkce. Nabídka funkcí Excelu pak bude rozšířena o ty naše, které si vytvoříme.

Karta Vývojář

Karta Vývojář není ve výchozím nastavení Wordu ani Excelu zobrazena. Přidáme ji na pás karet Soubor -> Možnosti -> Přizpůsobit pás karet -> Vývojář.

Karta Vývojář v Microsoft Office Word - Makra v Microsoft Office

Nejprve si zkontrolujme Zabezpečení maker. To provedeme na kartě Centrum zabezpečení, Nastavení maker.

  • Zakázat všechna makra s oznámením - Bývá aktivní, v tomto případě jsou makra zakázaná, ale při zjištění makra v souboru se zobrazí výstraha zabezpečení. Pokud chceme makra používat, musíme je povolit. Tuto volbu doporučuji.
  • Volby níže - Při libovolné z těchto voleb budou vámi vytvořená makra fungovat, ale obzvláště při volbě Povolit všechna makra riskujete spuštění případných makrovirů.
  • Zakázat všechna makra bez oznámení - Již existující makra v souboru jsou zakázána, nemohou se spustit, tudíž nefungují. Lze však tvořit a spouštět makra nová. Tuto volbu nedoporučuji.

Záznam makra uloží naši činnost do makra. Je to tedy jedna z možností, jak makro vytvořit.

Nahráváme, spouštíme a upravujeme makro ve Wordu

Zadání: Vytvořte ve Wordu makro Formatuj. Uživatel vybere text a spustí makro, makro nastaví font Arial, velikost textu na 14, tučně a kurzívou, ostatní vlastnosti textu neměňte.

  • Dokument Wordu, v kterém budeme makro tvořit, si uložíme jako Dokument Word s podporou maker. Do dokumentu vložíme alespoň větu textu a část vybereme.
  • Vývojář -> záznam makra, název makra je Formatuj, uložit makro v dokumentu, s kterým právě pracujeme. Makro tak bude dostupné právě a jen v tomto dokumentu. Při volbě Všechny dokumenty soubor Normal by bylo makro přístupné i z dalších souborů. Makro Přiřadit na klávesnici nám umožní zadefinovat klávesovou zkratku pro spuštění. Stiskneme OK.
  • Karta Domů a na ní změníme požadované.
  • Karta Vývojář -> zastavit záznam a makro je nahrané.

Vybereme si jinou část textu a zvolíme Karta Vývojář -> Makra, Formatuj a Spustit, nebo lze použít pro spuštění klávesovou zkratku, pokud jsme ji přiřadili.

Karta Vývojář -> Makra, Formatuj a Upravit nám pak zobrazí zdrojový kód našeho prvního makra v editoru Visual Basic. (Neplést s jazykem Visual Basic .NET, poznámka redakce).

Zdrojový kód makra, které mi bylo vygenerováno, je uveden níže. A možná bude také překvapení, když zjistíte, že nefunguje přesně dle zadání. Zkuste si jej několikrát spustit a přijít na to, jaká je opravdová funkčnost :-) Už to máte?

Sub Formatuj()
'
' Formatuj Makro
'
'
    Selection.Font.Name = "Arial"
    Selection.Font.Size = 14
    Selection.Font.Bold = wdToggle
    Selection.Font.Italic = wdToggle
End Sub

Problém je s hodnotou wdToggle, která zde funguje jako přepínač. Pokud písmo nebylo tučné, tak jej ztuční, ale pokud písmo tučné bylo, tak naopak tučnost zruší (což nechceme). Zkusme přijít na to, jak to opravit.

Nahrajme ve stejném souboru ještě jedno makro (Formatuj_pismo), kde nastavíme požadované přes dialogové okno písma. Ani toto makro nebude fungovat přesně dle zadání, protože budou ve zdrojovém kódu uvedeny veškeré vlastnosti fontu, které na kartě najdeme. Nastaví se tedy i podtržení, jeho barva..., což jsme nechtěli.

Upravme tedy, smazáním nepotřebného, druhé makro tak, aby měnilo jen 4 požadované vlastnosti fontu. No a teď, když vidíte obě makra pod sebou, určitě jste si všimli hodnoty True, která už správně nastavuje tučnost a kurzívu. V makru Formatuj změňte hodnotu wdToggle na True a makro bude pracovat správně. Poslední možná hodnota je False, která naopak nastavuje, že písmo nebude tučné a obdobně u kurzívy.

Jak vidno, už při takto jednoduchém zadání jsme si s pouhým záznamem makra nevystačili, ale museli jsme zasahovat do zdrojového kódu. Vyřešme stejný úkol ještě pro Excel.

Formátování písma makrem v Excelu

Sešit Excelu, v kterém budeme makro tvořit, si uložíme jako Sešit aplikace Excel s podporou maker. Pokud ještě nemáte přidánu Kartu Vývojář, přidejte si ji.

Samostatně si ověřte, že nahrávání makra opět nic neřeší. Ale protože už máme úkol hotov, tak proč to nezkopírovat?

  • Karta Vývojář -> Makra, do názvu makra napíšeme Format a zvolíme vytvořit. Otevře se editor jazyka Visual Basic a v něm bude hlavička našeho makra.
  • Do těla makra zkopírujeme tělo makra Formatuj, uložíme a ověříme funkčnost.

Jednoduché, že? Obdobně si samostatně vyzkoušejte, že v Excelu funguje i makro Wordu Formatuj_Pismo a změňte jeho název na Format_Pisma.

Také jsme mohli v novém souboru spustit Visual Basic přes Kartu Vývojář, dále zvolit Insert -> Module, nakopírovat sem obě makra z Wordu a změnit jim názvy.

Přes volbu Makra a volbu možnosti, lze nastavit makru klávesovou zkratku pro spouštění.

A příště, Klasické Hello a úvod do OOP pro makra, už dáme přednost programování před nahráváním.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 50x (43.21 kB)
Aplikace je včetně zdrojových kódů v jazyce VB

 

Všechny články v sekci
Makra v Microsoft Office
Přeskočit článek
(nedoporučujeme)
Klasické Hello a úvod do OOP pro makra
Článek pro vás napsala Lenka
Avatar
Uživatelské hodnocení:
22 hlasů
Autorka je absolventkou FI MU. Má dlouholetou pedagogickou praxi. Vyučovala maturitní obor IT, zejména Programování a Databázové systémy. Taktéž byla vývojová odborná redaktorka matematiky. Nyní se věnuje nestandardní i standardní výuce na soukromo.
Aktivity