Makra – jak vytvořit makro v Excelu

V tomto příspěvku je popsáno vytvoření úplně nejjednoduššího makra v Excelu.

Co je to makro

Než se dostaneme k našemu úkolu, pojďme si vyjasnit, co to vlastně makro je.

Představte si, že v Excelu (nebo ve Wordu, Accessu nebo v jiné aplikac MS Office) děláte opakovaně nějakou rutinní věc. A protože je zbytečné, abyste to dělali znovu a znovu úplně stejně a ztráceli tím čas, potřebujete, aby to dělal Excel automaticky. Aby to ale dělat mohl, musíte ho to nejdříve "naučit".

Chcete tedy Excelu jakoby říci "teď ukážu, co chci abys dělal, a pak to uděláš sám pokaždé, když kliknu na tlačítko". K tomu slouží makro.

Technicky je makro aplikace napsaná v programovacím jazyce Visual Basic for Applications (VBA), což je jazyk používaný výhradně v MS Office.

Příklad

Makro, které si ukážeme, bude dělat jen jednoduchou věc - vymazávat buňky A1 až B2 (tedy čtyři buňky).

Je jasné, že takové makro ve skutečnosti práci příliš neulehčí - teď jde ale o to, abychom si ukázali obecný postup pro vytvoření maker.

Makro bude spojené s tlačítkem. Výsledek tedy bude takový, že uživatel klikne na tlačítko a tím smaže všechno, co je v buňkách A1 až B2 napsáno.

Návod

Abyste mohli pracovat s makry, musíte mít v Excelu aktivní kartu "Vývojář" - ta ale v základním nastavení aktivní není. Pro její zobrazení jděte (v Excelu 2016) na Soubor - Možnosti - Přizpůsobit pás karet a zaškrtněte "Vývojář". Tak, jak je to na obrázku.  

vložení karty vývojář

V tuto chvíli byste už měli mít k dispozici kartu "Vývojář" takto:

přidaná karta vývojář

Teď tedy nahrajeme makro - jinak řečeno provedeme úkony, které chceme pro příště automatizovat.
Klikneme na tlačítko "Zaznamenat makro"

zaznamenat makro

Pokud chceme, tak makru dáme nějaké jméno (mezery nejsou povoleny). Klikneme na OK

V tuto chvíli se tlačítko "Záznam makra" změnilo na "Zastavit záznam". To znamená, že Excel se, obrazně řečeno, dívá, co děláme. Zapamatuje si to a příště už to bude dělat sám.

zastavení záznamu

Teď provedeme to, co je obsahem makra - v našem případě označíme myší čtyři příslušné buňky a stiskneme "Delete". Přesně tak, jako bychom buňky promazávali bez makra.

Klikneme na "Zastavit záznam" - a makro je vytvořené.

Ověříme si to tak, že klikneme na tlačítko "Makra" a seznam všech maker (my máme zatím jen jedno) uvidíme.

přehled maker

Můžeme je dokonce i spustit tlačítkem "Spustit" - pokud spustíme konkrétně naše makro, promažou se znovu příslušné buňky.
Vyzkoušejte si to. Napište něco do uvedených buněk a spusťte makro. Je-li makro nahrané správně, buňky se promažou.
Naším posledním úkolem je už jen přiřadit makro k tlačítku.
Nejprve tlačítko vložíme tak, jak je to na obrázku:

vložení tlačítka

Tedy kliknutím a pak roztažením po listu. Excel v tuto chvíli sám nabídne přiřazení makra k tlačítku. Stačí vybrat příslušné makro a dát OK.

dokonceni prirazeni tlacitka

A to je vše. Můžete si vyzkoušet, že i tlačítko funguje - pokud napíšete něco do příslušných buněk a pak zmáčknete tlačítko, buňky se promažou.
Pokud v seznamu maker kliknete na Upravit, zobrazí se Vám zápis makra zapsaný v jazyce VBA, nějak takto:
Důležitý jsou třetí a čtvrtý řádek. Pokud umíte anglicky, není těžké je dešifrovat. V řádku tři označujeme oblast A1 až B2, v řádku čtyři vymažeme obsah z vybrané oblasti.

Video

9 comments on “Makra – jak vytvořit makro v Excelu
  1. Denis napsal:

    Pěkný návod a to video na YT je super. Já osobně měl hodně problém s kontingenčními tabulkami. Tak jsme se rozhodl pak pro (odkaz na externí web byl odstraněn). To mi pomohlo celkem se začátky. Teď už si to vychytávám sám a vzdělávám se hlavně s informacemi z internetu.

  2. PetrJ napsal:

    Dobrý den, zkouším jednoduché makýrko na zautomatizování použití filtru. A nějak se mi nedaří.
    Mám dva sloupce, dny pod sebou od 1.1.2014 do dneška a druhý sloupec jsou přiřazené denní průměrné venkovní teploty. Pomocí tohoto makra bych chtěl docílit toho, že do dvou nezávislých buněk bych zadal ohraničený interval venkovních teplot, např. 8°C až 9°C a vyfiltrovaly by se mi příslušné dny.
    Začnu tedy zadávat makro, nad sloupci mám již zadaný filtr:

    Kliknu na políčko s filtrem, objeví se nabídka, vybírám Filtry čísel, dále se nabízí Rovná se, Nerovná…. atd. Já volím Mezi a zadávám větší jak 8 a menší jak 9. Ok. Zastavuji zadávání makra. Výsledkem je toto makro, kde bych nějakým způsobem potřeboval do Criteria1 a Criteria2 dostat hodnoty z mých stanovených buněk. Např. K4 a L4. Tzn. já do buněk K4 a L4 zadám třeba 2 a 4 a po spušťění makýrka by se měly vyfiltrovat dny, kdy byly tyto teploty. Problémem je, jak dostat tyto hodnoty (proměnné) do makra za Criteria1,2

    ActiveSheet.Range(„$A$8:$D$897″).AutoFilter Field:=4, Criteria1:=“=> (“ ‚List1′“!K4″)“ _ , Operator:=xlAnd, Criteria2:=“<=9“

    Děkuji a zdravím Petr Jedlička

  3. Anonym napsal:

    Dobrý den Petře, na tohle nepoužívejte automatický filtr, ale Advanced Filter (Rozšířený). Ten dělá přesně to, co hledáte – ať už ho použijete v makru nebo ne.

  4. Lukáš napsal:

    Dobrý den,
    chtěl bych se zeptat, jakým způsobem je možné docílit toho, aby mi Makro fungovalo pro více listů?
    Př. Udělám tabulku se jmény v list1 a následně udělám totožnou tabulku v list2. V případě, že udělám makro na seřazení jmen v list1, toto makro mi pak bohužel nefunguje pro list2, protože je v něm nadefinovaný pouze list1.
    Děkuji za pomoc

  5. Jiří Beran napsal:

    Lukáš – makro může fungovat buď pro konkrétní list (list1, list2) nebo pro list, na kterém právě aktuálně jste (ať je to kterýkoliv). Záleží jen na tom, jestli oblast řazení, kteoru v makru definuje nebo ne, obsahuje i odkaz na list. JB

  6. Karel napsal:

    Dobrý den, mám buňku, do které vepisuji různá čísla. Tato buňka za pomoci odmíněného formátování mění svou barvu. Potřebuji toto formátování rozšířit na několik dalších buněk. Jde to za pomoci maker? Děkuji za radu

  7. Jiří Beran napsal:

    Podmíněné formátování lze definovat makrem stejně jako cokoliv jiného. Často stačí to makro nahrát a upravit, ani se nemusí zapisovat…

  8. Richard dickt@seznam.cz napsal:

    Zdravím
    Mám napsaný seznam CD a pomocí komentářů jsem si ke spoustě z nich vložil obrázek obalu CD, který měl velikost 7x7cm. Bohužel jsem však nějakou chybou velikosti komentářů rozházel do různých velikosí (84×2.5cm, 9×1.5cm apod.), a ještě se mi podařilo, že ty komentáře jsou rozházeny po celém listě. Lze prosím pomocí nějakého „makra“ udělat to aby se všem komentářům dali nastavit stejné velikosti a umístit je tam kde mají být ?

  9. Jindřiška napsal:

    Dobrý den, mám soubor o cca 90ti listech (na každém jsou data a z nich vyvozená kontigenční tabulka), potřebuji pravidelně tyto tabulky tisknout – dá se nějak jednoduše pomocí makra „nasázet“ tabulky k tisku (co nejvíce na jeden list papíru? Díky

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

Firemní kurzy

  • Přemýšlíte o firemním školení Excelu?
  • Školíme Excel od začátečníků po experty, ale také PowerPoint, PowerPivot nebo Access.
Mám zájem o kurz

Individuální výuka

Mám zájem o výuku

Vývoj aplikací v Excelu (makra - VBA)

  • Vyvíjíme aplikace pro potřeby firemních zákazníků
  • Reporty, vizualizace dat, harmonogramy, plánování
  • Slučování dat ze souborů, agregace, exporty
Zajímám se o vytvoření aplikace

Kontakt

  • Tel: +420 602 274 999
  • Mail: info@vyuka-excelu.cz
Kontaktní formulář
TOPlist