50
Microsoft Excel - makra Automatizace práce v MS Excel v. 2007 - 2016 Jaroslav Nedoma

makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

Embed Size (px)

Citation preview

Page 1: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

Microsoft Excel - makra

Automatizace práce v MS Excel v. 2007 - 2016

Jaroslav Nedoma

Page 2: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

O KURZU

Automatizace práce v MS Excel

Vítáme Vás na IT semináři věnujícím se problematice maker (automatizaci úloh) v nejrozšířenějším

tabulkovém kalkulátoru na světě, v aplikaci Microsoft Excel.

Autor má za cíl provést čtenáře co možná nejjednodušší cestou přes úskalí tohoto programu. Měli

bychom si na školení ukázat řadu zjednodušujících cest, které vedou mnohdy na to stejné místo jako

dlouhá krkolomná řešení. Pravidlo zní, stručně, jasně a výstižně seznámit čtenáře s každou kapitolou.

Skripta Vás provedou spoustou zajímavých kapitol. Budeme se věnovat tvorbě maker od úplného

začátku a projdeme spolu tedy například rozdíly mezi absolutním a relativním záznamem makra,

tvorbou podmínek, cyklů a naučíme se tak vytvářet vlastní makra také pomocí programovacího

prostředí Visual Basic for Applications.

Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta

ke školení. Předpokládá se tedy, že po absolvování školení budete schopni tato skripta využít na 100 %

bez sebemenší překážky spolu s upřesňujícími poznámkami pořízenými na semináři.

O AUTOROVI

Jaroslav Nedoma

IT lektor Microsoft Office Jaroslav Nedoma úspěšně proškolil ke konci roku 2016 přes 5 500 osob

v 7 000 hodinách výuky. Školením se zabývá od roku 2009, kdy začínal jako lektor kancelářského balíčku

MS Office 2003. Dnes školí zaměstnance firem výhradně pro práci s verzemi MS Office 2013 a 2016.

Jako lektor IT kurzů MS Office proškolil přes 100 velkých a malých firem v rámci celé ČR.

Účastníci kurzů různých věkových skupin se pod vedením pana Nedomy naučili ovládat kancelářské

programy Word, Excel, Outlook, Access nebo PowerPoint a prakticky využívat všechny funkce, které jim

pomáhají řešit úkoly nejen v zaměstnání, ale i v domácnosti a volném čase. Zaměstnavatelé oceňují

zvýšení kvalifikace i efektivity jejich zaměstnanců.

Veškeré připomínky, dotazy, nápady k obsahu těchto skript směřujte přímo na autora přes následující

kontakty:

mob.: +420 724 782 336

e-mail: [email protected]

web: www.lektornedoma.cz

Page 3: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

OBSAH

Proč makra? ..............................................................................................................................................5

Využití maker .......................................................................................................................................5

Prostředí MS Excel ....................................................................................................................................6

Karta Vývojář .......................................................................................................................................6

Zabezpečení maker .............................................................................................................................7

Uložení sešitů s makry .........................................................................................................................8

Záznam makra ..........................................................................................................................................9

Absolutní záznam ................................................................................................................................9

Relativní záznam ............................................................................................................................... 11

Smíšený záznam ............................................................................................................................... 11

Spuštění makra ...................................................................................................................................... 12

Dialogové okno ................................................................................................................................. 12

Klávesová zkratka ............................................................................................................................. 13

Ikona na panelu pro rychlý přístup .................................................................................................. 14

Vlastní tlačítko .................................................................................................................................. 16

Karta vlastních příkazů na pásu karet .............................................................................................. 19

Další možnosti .................................................................................................................................. 20

Prostředí VBA ........................................................................................................................................ 21

Spouštění editoru jazyka Visual Basic for Applications .................................................................... 21

Kde všude může být kód VBA ........................................................................................................... 22

Rozbor nahraných maker ................................................................................................................. 23

Hlavička makra.......................................................................................................................... 23

Komentáře ................................................................................................................................ 24

Zaznamenaná makra ................................................................................................................ 24

Okno Immediate ............................................................................................................................... 27

Krokování .......................................................................................................................................... 28

Základy jazyka VBA ................................................................................................................................ 29

Procedury ......................................................................................................................................... 29

Funkce .............................................................................................................................................. 30

Příkazy a jejich zápis ......................................................................................................................... 31

Názvy objektů, proměnných a konstant - pravidla .......................................................................... 31

Datové typy proměnných a konstant ............................................................................................... 32

Page 4: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

Datový typ................................................................................................................................. 32

Rozsah platnosti a životnost ..................................................................................................... 33

Deklarace proměnných ............................................................................................................. 33

Datový typ String ...................................................................................................................... 33

Operátory ......................................................................................................................................... 34

Aritmetické operátory .............................................................................................................. 34

Relační operátory ..................................................................................................................... 34

Spojovací operátory .................................................................................................................. 35

Logické operátory ..................................................................................................................... 35

Rozhodovací bloky ............................................................................................................................ 36

Rozhodovací blok If-Then-Else .................................................................................................. 36

Cykly ................................................................................................................................................. 38

Cykly For – Next ........................................................................................................................ 38

Cykly Do While .......................................................................................................................... 39

Speciální makra Auto_Open a Auto_Close ....................................................................................... 41

Makro Auto_Open .................................................................................................................... 41

Makro Auto_Close .................................................................................................................... 41

MsgBox a InputBox ........................................................................................................................... 43

MsgBox ..................................................................................................................................... 43

InputBox ................................................................................................................................... 45

Praktická část ......................................................................................................................................... 47

Nejčastější klávesové zkratky v MS Excel .............................................................................................. 48

Speciální znaky při práci s MS Excel ...................................................................................................... 49

Závěr ...................................................................................................................................................... 50

Page 5: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 5

PROČ MAKRA?

Na seminářích často padne jednoduchá otázka: „Proč vůbec makra?“ Já odpovídám rovněž otázkou:

„Provádíte v Excelu nějaké úlohy či úkony opakovaně? Nebo máte dojem, že děláte otrockou práci,

která spočívá ve stále stejných krocích?“ Většina účastníků odpovídá kladně, a to je důvod, proč se

makry v Excelu vůbec zabývat. Jednoduše si je představme jako něco, co nám dokáže zjednodušit

každodenní práci a ušetřit čas, který můžeme vynaložit na úplně jiné operace.

VYUŽITÍ MAKER

Makra využijeme, jak jsme si již vysvětlili v předchozím odstavci, k automatizaci opakujících se akcí

(úkolů), například k:

Otevírání sešitu, vytištění jeho části a následné uzavření.

Otevření více sešitů najednou, sloučení jejich obsahu do nového sešitu a jeho uložení.

Vytváření grafů.

Stejné formátování buněk.

Práce s listy (jejich vytváření, kopírování, odstraňování, …).

Tisk určité části sešitu.

Vytvoření vlastní funkce či příkazu.

Vytvoření celé nové aplikace (např. skladový systém, fakturační systém, jiný databázový

systém).

Slovo „databáze“ je třeba brát v Excelu spíše v uvozovkách, protože se nejedná o klasické databáze tak,

jak je známe z mnoha provázaných relačních struktur. Excel není pro tvorbu databázových systému

primárně určen, nicméně dají se v něm vytvářet menší aplikace, které eliminují nákup drahého

software. Výhoda Excelu je jasná – svou aplikaci si vždy přizpůsobíte svým požadavkům. Nevýhoda

spočívá v chybách, které „ladíme“ v rámci maker většinou delší dobu, než přijdeme na všechny cesty,

které potřebujeme v rámci správného chodu aplikace ošetřit.

Tato skripta se však nezabývají tvorbou komplexních aplikací v rámci maker Excelu. Na kurzu se dozvíte

vše podstatné o makrech a o jejich nasazení při každodenní práci. Pamatujte, že ze základů a krátkých

jasných maker vznikají právě rozsáhlé aplikace. Složitá makra nejsou nic jiného než spojení několika

menších maker.

Page 6: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 6

PROSTŘEDÍ MS EXCEL

Než se ve skriptech dostaneme k praktickým příkladům, budeme se věnovat části, která nás připraví

na práci s makry v prostředí MS Excel.

KARTA VÝVOJÁŘ

Abychom mohli v Excelu s makry pracovat, je zapotřebí vyvolat na pásu karet kartu Vývojář

následovně:

1. Klepneme na kartu Soubor.

2. V levé části zvolíme volbu Možnosti.

3. Zobrazí se dialogové okno, ve kterém:

a. Zvolíme možnost Přizpůsobit pás karet (viz Obr. 1).

b. V pravé části okna zatrhneme položku Vývojář (viz Obr. 1).

c. Klepneme na tlačítko OK (viz Obr. 1).

Obr. 1 Zobrazení karty Vývojář na pásu karet

Page 7: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 7

Karta Vývojář nás bude zajímat hlavně v její levé části – tedy konkrétně skupina příkazů nazvaná jako

Kód (Obr. 2). Obsahuje důležité nástroje, které nás budou provázet během celého kurzu. Jsou jimi:

Visual Basic – prostředí sloužící pro úpravu kódu VBA (dostaneme se k němu, až budeme

upravovat již zaznamenaná makra nebo když budeme vytvářet makra sami právě

v programovacím jazyce VBA).

Makra – jedná se o místo, ze kterého je možné naše makra spouštět. V tomto okně je rovněž

umožněno upravit základní vlastnosti makra.

Zaznamenat makro – nástroj, který umožní záznam makra (relativně i absolutně – viz dále).

Použít relativní odkazy – umožní při záznamu makra použít relativní odkazy (například

při kniknutí na buňku A1 se nezaznamená adresa buňky A1 (absolutní záznam), ale relativní

pozice buňky A1 od předchozí aktivní buňky. Jinými slovy, pokud budeme mít kurzor v buňce

B5 a v rámci záznamu makra klikneme do buňky A1, makro si zaznamená, že byl proveden

posun o jeden sloupec doleva a o čtyři řádky nahoru.).

Zabezpečení maker – viz následující kapitola.

Obr. 2 Karta Vývojář - skupina Kód

ZABEZPEČENÍ MAKER

V rámci maker lze přechovávat také škodlivé programy, které mohou ohrozit Váš počítač. Je důležité si

rozmyslet, jak se má Excel zachovat v momentě, kdy otevíráme sešit s makry. Toto chování lze nastavit

následovně:

1. Na kartě Vývojář ve skupině Kód klepneme na tlačítko Zabezpečení maker (Obr. 3).

2. Zobrazí se dialogové okno, ve kterém klepneme na tlačítko Nastavení maker a v pravé části

okna zvolíme požadovaný stupeň zabezpečení (viz Obr. 4):

a. Zakázat všechna makra bez oznámení.

b. Zakázat všechna makra s oznámením.

c. Zakázat všechna makra kromě digitálně podepsaných maker.

d. Povolit všechna makra (nedoporučuje se – viz odstavec výše).

Obr. 3 Zabezpečení maker

Page 8: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 8

Obr. 4 Stupeň zabezpečení maker

ULOŽENÍ SEŠITŮ S MAKRY

Jestliže do sešitu zaznamenáme nebo naprogramujeme makra, musíme tento sešit uložit do formátu

Sešit aplikace Excel s podporou maker (s příponou *.xlsm):

1. Klepneme na kartu Soubor.

2. V levé části klikneme na položku Uložit jako.

3. Sešit aplikace Excel s povolenými makry.

4. Zobrazí se dialogové okno, ve kterém:

a) Vybereme složku, do které chceme sešit uložit.

b) Do řádky Název souboru vložíme název sešitu.

c) Na řádku Uložit jako typ zvolíme možnost Sešit aplikace Excel s podporou maker

(jedná se o příponu *.xlsm).

d) Klepneme na tlačítko Uložit.

Pozor – pokud omylem uložíte soubor, který obsahuje makra, s příponou *.xlsx, o makra byste přišli.

Nicméně pokud jste ještě dotyčný soubor nezavřeli, je možné udělat nápravu a přes volbu Uložit jako

tento soubor znovu uložit, tentokráte správně s koncovkou *.xlsm. Pokud však soubor zavřete a bude

uložen chybně, zpět svá makra již nedostanete a vše budete muset opakovat znovu. Proto dávejte

dobrý pozor na to, jak soubor s makry ukládáte. Pro nováčky v oblasti maker je toto jedna

z nejdůležitějších vědomostí.

Page 9: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 9

ZÁZNAM MAKRA

Záznam je jednodušší cestou k vytvoření vlastního makra bez složitých znalostí programování.

Při nahrávání maker je zaznamenávána veškerá činnost, kterou v Excelu provádíte. Pro nahrávání

maker má Excel vestavěn zvláštní záznamník. Excel nahrává všechny akce myši, stisk kláves, vyvolané

příkazy, otevřené dialogy atp. Kdybychom měli záznam jednoduše připodobnit, tak bychom mohli

vycházet např. z nahrávání filmu z televize. Film nahrajete a kdykoliv si ho můžete zpětně pustit – to

samé děláme v rámci maker.

Způsoby záznamu:

Absolutně – jestliže vyberete nějakou buňku, bude si Excel pamatovat její přesnou adresu.

Relativně – zaznamenává posun (např. o dvě buňky vpravo).

ABSOLUTNÍ ZÁZNAM

V této části bychom mohli vytvořit naše první makro, které bude mít za úkol vypsat pod sebe do buněk

názvy dní v týdnu s tím, že první bude vždy v buňce A1. Všimněte si, že v zadání požadujeme, abychom

začali s vyplňováním v konkrétní buňce, čili bude se jednat o absolutní záznam makra.

Postup při absolutním záznamu:

1. Na kartě Vývojář, ve skupině Kód, klikneme na nástroj Zaznamenat makro (Obr. 5).

Obr. 5 Zaznamenat makro

2. Vyplníme okno pro nové makro (Obr. 6):

a. Název makra – nejdůležitější část – podle názvu budeme makro spouštět

(např. Dny_v_tydnu). Název by měl být výstižný, nesmí obsahovat mezery ani žádné

speciální znaky kromě podtržítka („_“), kterým většinou nahrazujeme mezeru mezi

slovy. Diakritika v názvu je povolené, nicméně doporučením je diakritiku nepoužívat,

abyste předešli komplikacím v rámci VBA prostředí (hlavně při přenosu aplikace mezi

jazykovými mutacemi).

b. Klávesová zkratka – je nepovinná, ale pokud již nyní víte, že budete makro využívat

každou chvíli, můžete si tak urychlit práci při běžném používání. Jen pozor na to, že

tyto zkratky budou v daném dokumentu prioritní, tedy pokud použijete klávesovou

zkratku, kterou v současnosti používáte k jiné operaci, již nebude fungovat a nahradíte

jí touto novou funkcionalitou Vašeho makra. Doporučuji používat klávesu Shift, kterou

Page 10: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 10

rozšíříte klávesovou zkratku na „trojhmat“ (Ctrl + Shift + „něco“). Díky tomu většinou

předejdeme chybné definici s nahrazením známé klávesové zkratky.

c. Uložit makro do – zde máme tři možnosti. Buď zaznamenáváme makro pro používání

v tomto sešitě, nebo chceme vytvořit makro do nového prázdného sešitu, nebo

chceme, abychom mohli na svém počítači používat makro ve všech Excelovských

sešitech, zvolíme možnost „Osobní sešit maker“.

d. Popis – jedná se pouze o komentář, který je však vhodný v situace, kdy má s makry

pracovat někdo jiný než my, kterému komentář pomůže v orientaci toho, co vlastně

makro dělá. Zároveň jsou komentáře vhodné, když vytváříme desítko maker a těžko se

pak orientujeme v tom, jaké makro máme zrovna použít.

Obr. 6 Nové makro

3. Klikneme na tlačítko OK a v tuto chvíli se spustí záznam makra. Nyní bychom tedy měli klikat

pouze tam, jak to požadujeme v budoucnu od makra a zároveň psát pouze to, co má

v budoucnu makro psát. Nic víc, nic míň.

4. Zaznamenáme tedy makro:

a. Klikneme do buňky A1, zapíšeme „Pondělí“.

b. Klikneme do buňky A2. zapíšeme „Úterý“.

c. Takto budeme postupovat do neděle.

5. Ukončíme záznam makra (Zastavit záznam ve skupině Kód na kartě Vývojář) - Obr. 7.

Obr. 7 Zastavit záznam

6. Makro je na světě .

Page 11: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 11

V dalších kapitolách si ukážeme, jak makro spustit. Nyní ještě přejdeme k relativnímu záznamu,

abychom poté mohli jednotlivé záznamy porovnat.

RELATIVNÍ ZÁZNAM

V některých případech budete chtít, aby vaše makro pracovalo s umístěním buněk v relativním smyslu.

Například v reakce na naše předchozí makro budeme chtít vytvořit více použitelné makro, a to v tom

smyslu, že se začnou dny v týdnu vyplňovat od souřadnice buňky, ve které budeme mít kurzor (bude

aktivní). V takovém případě budete potřebovat záznam makra s relativními odkazy na buňky.

Postup při relativním záznamu:

1. Nejprve aktivujeme určitou buňku, např. D1.

2. Na kartě Vývojář, ve skupině Kód, klikneme na nástroj Použít relativní odkazy (Obr. 8Obr. 5).

Tímto jsme aktivovali relativní záznam.

Obr. 8 Použít relativní odkazy

3. Pokračujeme stiskem nástroje Zaznamenat makro (Obr. 5).

4. Opět vyplníme okno nového makra (Obr. 6). S názvem např. Dny_v_tydnu_2.

5. Klikneme na OK.

6. Zaznamenáme makro:

a. Klikneme na stejnou buňku, kterou jsme označili v kroku 1. Toto je důležitá operace.

Pokud bychom toto nerespektovali a klikli například do buňky F10 a začali psát den

v týdnu, makro by si v tuto chvíli zaznamenalo posun od buňky D1 (o 2 sloupce vpravo

a o 9 řádků níže), ve které jsme měli kurzor před záznamem makra, a to by způsobilo

takový efekt, že při každém spouštění našeho makra v budoucnosti by makro začalo

vypisovat dny ne do buňky, ve které máme kurzor, ale do buňky právě o 9 řádků níže

a o 2 sloupce vpravo.

b. Zapíšeme „Pondělí“.

c. Přesuneme se do buňky níže a zapíšeme „Úterý“.

d. Takto budeme postupovat do neděle.

7. Ukončíme záznam makra (Zastavit záznam ve skupině Kód na kartě Vývojář) - Obr. 7.

SMÍŠENÝ ZÁZNAM

Smíšený záznam v rámci záznamníku maker zkrátka neexistuje. Musíme si tedy dopředu vybrat,

zda bude makro absolutní (odkazující se na přesné pozice) či relativní (ve vztahu k aktivnímu

buňkovému kurzoru).

Nahrané makro je však možné rozebírat v rámci editoru VBA, ke kterému se dostaneme později

a v rámci tohoto prostředí je možné makra upravovat se znalostí programovacího nástroje VBA.

Page 12: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 12

SPUŠTĚNÍ MAKRA

V předchozí kapitole jsme si ukázali, jak makro zaznamenat a nyní přichází čas na to, abychom si

předvedli, jaké jsou možnosti pro spouštění makra.

DIALOGOVÉ OKNO

Jako první možnost si předvedeme spuštění makra z dialogového okna Makra (Obr. 10) – nástroj

najdeme na kartě Vývojář ve skupině Kód (Obr. 9).

Obr. 9 Nástroj makra

V dialogovém okně vidíme všechna makra, která jsme zaznamenali (u nás zatím dvě). Tato makra

můžeme spouštět (kliknutím na tlačítko Spustit), upravovat (v prostředí VBA – viz kapitola o prostředí

VBA), odstranit (kliknutím na tlačítko Odstranit) či měnit klávesovou zkratku nebo popis makra

(kliknutím na tlačítko Možnosti…) - Obr. 11.

Obr. 10 Dialogové okno Makra

Page 13: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 13

Obr. 11 Možnosti makra

Nyní spustíme naše první makro Dny_v_tydnu. Když makro spustíte, v listě, na kterém se nacházíte se

v oblasti A1:A7 objeví seznam našich 7 dní.

Vyzkoušejte, co se stane, když kliknete například do buňky C10 a spustíte toto makro znovu. Opět se

seznam vepíše do stejných buněk A1:A7 – toto je princip absolutního makra.

Nyní spusťme makro Dny_v_tydnu_2. Makro bude vypisovat dny v týdnu počínaje buňkou, ve které se

nachází Váš kurzor. Kliknete-li do buňky C10, budou dny v týdnu v buňkách C10:C16. Když kliknete

do buňky D55, dny budou v buňkách D55:D61 atd. Toto je naopak princip relativních maker, která se

vztahují k pozici kurzoru.

Nyní si myslím, že je rozdíl mezi absolutním a relativním makrem pochopený a můžeme přejít k dalším

možnostem spouštění maker kromě dialogového okna Makra.

KLÁVESOVÁ ZKRATKA

Klávesová zkratka tvoří druhou možnost, jak makro spustit. Výhodou je, že nemusíme klikat po kartách

a příkazech a přímo stiskneme klávesovou zkratku, která přísluší danému makru. Nevýhodou

samozřejmě je, že si zkratky musíte pamatovat .

Naše absolutní makro spustíme stiskem klávesové zkratky Ctrl + Shift + D. Je hotovo, dny jsou

v buňkách A1:A7.

Relativní makro spustíme stiskem klávesové zkratky Ctrl + Shift + F (zkratka, kterou jsem použil

při tvorbě druhého makra).

Page 14: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 14

IKONA NA PANELU PRO RYCHLÝ PŘÍSTUP

Další možností, jak makro spustit, je využít panel nástrojů pro rychlý přístup (Obr. 12). Tak říkají

v Microsoftu řádku s ikonami, který naleznete většinou nad pásem karet (nad kartami Soubor, Domů,

Vložení, …).

Obr. 12 Panel nástrojů Rychlý přístup

Na tento panel lze přidat vlastní ikonu, která bude spouštět naše makro. Musíme postupovat

následovně:

1. Na konci panelu nástrojů Rychlý přístup (Obr. 12) je šipka směřující dolů – na tu klikneme.

2. Z nabídky zvolíme Další příkazy… (Obr. 13)

Obr. 13 Další příkazy...

Page 15: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 15

3. V dialogovém okně v části Zvolit příkazy z vybereme možnost Makra (Obr. 14).

Obr. 14 Zvolit příkazy z: Makra

4. Nyní se nám zobrazí seznam našich maker. Budeme chtít pracovat například s relativním

makrem, takže klikneme na makro s názvem Dny_v_tydnu_2 a ve střední části okna klikneme

na volbu Přidat. Tím se makro zařadí mezi ikony do pravé části a to znamená, že se stane

součástí panelu Rychlý přístup (Obr. 16).

5. Nyní ještě na naše makro v pravé části klikneme a dole zvolíme volbu Změnit… (Obr. 16).

6. V okně (Obr. 16), které se otevře, vybereme ikonu, kterou budeme chtít pro naše makro

využívat a v dolní části okna ještě naše makro pojmenujeme tak, aby bylo jasné, co makro

dělá. Jedná se o popis, který se zobrazí formou tzv. „bubliny“, když na ikonu v Excelu

najedeme myší.

7. Vše potvrdíme tlačítky OK.

8. Máme hotovo, naše makro je připravené k použití a stačí ho vyzkoušet. Klikneme do jakékoliv

buňky a následně na ikonu našeho makra (Obr. 15) – v tu chvíli vidíme seznam dní v týdnu.

Obr. 15 Ikona domečku nyní spouští makro dní v týdnu

Page 16: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 16

Obr. 16 Zařazení makra na panel nástrojů a ikona s názvem

VLASTNÍ TLAČÍTKO

Abychom nemuseli spouštět makro přes nástroj Makra na kartě Vývojář, nebo abychom makro

nepřidávali na panel nástrojů Rychlý přístup jako ikonu v přechozím případě, můžeme tuto činnost

přenechat tlačítku či jinému objektu, který se nachází přímo v listě. Tato metoda se používá zejména

pro makra, která se váží k tabulce či formuláři, u kterého tato tlačítka jsou – např. přidat, seřadit,

vytisknout, odstranit atd.

Byť se výpis dní v týdnu k této verzi obsluhy nehodí, jedná se o jednoduchý příklad, na kterém toto

budeme demonstrovat. V praxi se však tlačítka využívají ve vztahu k již zmíněným formulářům atp.

Page 17: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 17

Postup pro vytvoření vlastního tlačítka a přiřazení makra k němu:

1. Vytvoříme tlačítko či jiný objekt:

a. Na kartě Vložení ve skupině Ilustrace klikneme na nástroj Obrazce (Obr. 17).

Obr. 17 Karta Vložení, skupina Ilustrace, nástroj Obrazce

b. Následně vybereme jeden z obrazců připomínající tlačítko (např. obdélník) - Obr. 18.

Obr. 18 Vkládání obrazce

c. Objekt vložíme do listu Excelu – stačí kliknout, levé tlačítko myši držet a tahem

nakreslit obrazec. Tlačítko myši pustíme, na tlačítko napíšeme název a máme hotovo

(Obr. 19).

Obr. 19 Tlačítko v listě (neaktivní × aktivní)

2. Pokud nemáme nově nakreslený obrazec aktivní (tedy neobsahuje viditelné úchyty pro změnu

velikosti), klikneme na něj (Obr. 19).

3. Jestliže je objekt vybrán, klikneme na něj pravým tlačítkem myši.

4. V místní nabídce vybereme příkaz Přiřadit makro (Obr. 20).

Page 18: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 18

Obr. 20 Přiřadit makro tlačítku

5. V zobrazeném okně (Obr. 21) klikneme na název makra, které chceme přiřadit k danému

objektu a následovně výběr potvrdíme tlačítkem OK.

Obr. 21 Přiřadit makro objektu

6. Nyní můžeme tlačítko vyzkoušet – funguje – spouští dané makro.

Page 19: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 19

KARTA VLASTNÍCH PŘÍKAZŮ NA PÁSU KARET

Jedna z dalších možností je vytvořit si pro vlastní makra novou kartu mezi dosavadními (Domů, Vložení,

Vývojář, …).

Toho docílíme následovně:

1. Klikneme pravým tlačítkem myši např. na kartu Domů a z místní nabídky vybereme příkaz

Přizpůsobit pás karet… (Obr. 22).

Obr. 22 Místní nabídka – Přizpůsobit pás karet…

2. Následně v pravé části okna (Obr. 23) vytvoříme novou kartu kliknutím na tlačítko Nová karta.

Tuto kartu si můžeme pojmenovat (např. Moje makra). V rámci karty se vytvářejí skupiny

(vytvoříme skupina s názvem Dny v týdnu).

Obr. 23 Přizpůsobit pás karet

Page 20: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 20

3. V levé části vybereme ze seznamu (Obr. 24) v sekci Zvolit příkazy z: volbu Makra.

Obr. 24 Zvolit příkazy z - Makra

4. Nyní můžeme jednotlivá makra přesouvat do naší skupiny vždy označením názvu makra

a stiskem tlačítka Přidat ve středové části okna. Tím se jednotlivé příkazy přesunou do naší

skupiny Dny v týdnu. Následně lze přiřadit ikonu či přejmenovat událost tlačítkem

Přejmenovat.

5. Stiskem tlačítka OK okno potvrdíme a zavřeme.

6. Výsledek vidíme přímo před sebou na pásu karet v podobě nové karty s naším jménem Moje

makra. Zatím obsahuje jednu skupinu se jménem Dny v týdnu a ta obsahuje dvě tlačítka

spouštějící naše dvě makra (Obr. 25).

Obr. 25 Karta Moje makra

DALŠÍ MOŽNOSTI

Mezi další možnosti, jak makro spustit, patří spuštění přímo z programovacího kódu jiného makra,

což lze provést v prostředí VBA, o kterém bude řeč v následující kapitole.

Page 21: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 21

PROSTŘEDÍ VBA

Jedná se o editor, který má uživatelům usnadnit zápis a úpravu kódu makra v programovacím jazyce

VBA (Visual Basic for Application). V rámci tohoto editoru můžeme provádět drobné změny v již

nahraných makrech nebo rovnou vytvořit úplně nové makro v programovacím jazyce VBA.

SPOUŠTĚNÍ EDITORU JAZYKA VISUAL BASIC FOR APPLICATIONS

Do prostředí editoru VBA (Obr. 26) se z Excelu dostaneme stiskem kláves Alt + F11 či kliknutím

na nástroj Visual Basic na kartě Vývojář ve skupině Kód (Obr. 27). Je možné využít také cestu přes

seznam maker (Obr. 10), kde si vybereme konkrétní makro a následně klikneme na Upravit. Rovněž se

dostaneme do prostředí editoru VBA.

Obr. 26 Editor jazyka VBA

Obr. 27 Nástroj Visual Basic

Page 22: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 22

Pokud vidíte okno editoru VBA jinak než na Obr. 26, je možné, že nemáte zobrazena všechna podokna

tak, jako v tomto případě. Vždy stačí kliknout na nabídku View (Obr. 28) a zjistit, zda máte zobrazeny

dvě nejdůležitější podokna:

Project Explorer – zde jsou vidět projekty a v nich moduly, ve kterých budeme ukládat makra.

Properties Window – okno vlastností – týká se spíše objektů při práci s tvorbou aplikací

(formuláře, tlačítka a jiné prvky).

Dále se hodí ještě dvě podokna:

Immediate Window – okno pro testování příkazů v reálném čase a možnost provést konkrétní

událost bez potřeby spouštět celé makro (viz dále v kapitole Okno Immediate).

Locals Window – okno pro sledování lokálních proměnných – hodí se při testování kódu makra

– při jeho rozboru, tzv. krokování – viz dále v těchto materiálech.

Obr. 28 Zobrazení podoken

KDE VŠUDE MŮŽE BÝT KÓD VBA

V modulech kódu pro jednotlivé listy - může obsahovat speciální procedury, vázané

na konkrétní list, jež jsou spouštěny při výskytu nějaké události.

V modulu kódu ThisWorkbook může obsahovat speciální makra, která se automaticky spustí

při otevření sešitu, před jeho vytištěním nebo před uzavřením.

V modulech tříd – složka Modules.

Ve formulářích.

Page 23: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 23

ROZBOR NAHRANÝCH MAKER

Máme spuštěný editor, v okně kódu vidíme naše nahraná makra a konečně tedy můžeme prozkoumat,

čím se navzájem liší a jak vlastně takový programový kód vypadá.

Abychom se dostali ke kódu našich maker, musíme se v projektovém okně (Obr. 29) „proklikat“ nejprve

názvem projektu neboli sešitu (v mém případě VBAProject (Makra – skripta.xlsm)), dále rozklikneme

žlutou složku Modules a v ní Module1. Vpravo hned uvidíme obsah modulu, tedy naše dvě makra

v jazyce VBA.

Obr. 29 Project Explorer

Text maker má různé barvy (Obr. 26) – toto nám usnadňuje orientaci v programovém kódu.

Téměř vše je anglicky: na češtinu narazíte jen ve vlastních názvech maker a v komentářích.

Hlavička makra

Hlavičku makra tvoří dva řádky, které jsou v makru vždy. Je to první a poslední řádek (dvojice označená

Sub a End Sub). Za označením Sub je vždy název makra – jedná se o název, který jsme nadefinovali

před samotným záznamem makra.

Sub Dny_v_tydnu()

End Sub

Název makra (v našem případě Dny_v_tydnu) je vždy doplněn závorkami. Do nich se zapisují

tzv. formální parametry. Naše nahraná makra budou vždy bez parametrů.

Page 24: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 24

Komentáře

První řádky makra jsou zeleně. Tato barva je implicitní barvou komentářů – neboli té části makra, která

slouží jako nápověda a vysvětlivky. Komentáře se při vykonávání makra ignorují.

Začátek komentáře je vždy vyznačen znakem apostrofu.

V našem případě u makra Dny_v_tydnu je zřejmé, že se jedná o komentář, který popisuje, co makro

dělá a jakou klávesovou zkratku jsme makru přiřadili – kód viz níže.

'

' Dny_v_tydnu Makro

' Makro pod sebe vypíše dny v týdnu počínají buňkou A1.

'

' Klávesová zkratka: Ctrl+Shift+D

'

Zaznamenaná makra

V předchozích kapitolách jsme zaznamenávali absolutní a relativní makro, které mělo za úkol vypsat

názvy dní v týdnu. Nyní se podíváme, jak jsou tato makra uložena ve VBA.

Vygenerovaný kód Excelem při absolutním záznamu makra „Dny_v_tydnu“:

Sub Dny_v_tydnu()

Range("A1").Select

ActiveCell.FormulaR1C1 = "Pondělí"

Range("A2").Select

ActiveCell.FormulaR1C1 = "Úterý"

Range("A3").Select

ActiveCell.FormulaR1C1 = "Středa"

Range("A4").Select

ActiveCell.FormulaR1C1 = "Čtvrtek"

Range("A5").Select

ActiveCell.FormulaR1C1 = "Pátek"

Range("A6").Select

ActiveCell.FormulaR1C1 = "Sobota"

Range("A7").Select

ActiveCell.FormulaR1C1 = "Neděle"

Range("A1").Select

End Sub

Page 25: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 25

Vysvětlení kódu:

V kódu se opakují prakticky dva řádky:

o Range(„A1“).Select – znamená, že chceme označit buňku A1 – totéž pro další obdobné

řádky.

o ActiveCell.FormulaR1C1 = „Pondělí“ – znamená, že chceme do aktivní buňky zapsat

slovo Pondělí a jiné dny u dalších řádků.

Z opakujících řádků vyplývá, že jsme jen klikali a psali. Ale zamysleme se nad tím. Chceme, aby

po spuštění makro klikalo nebo zapisovalo? No přeci zapisovalo. Ukážeme si tedy, jak

zefektivnit tento kód tak, aby byl co nejkratší a přesto dělal to, co do teď:

Sub Dny_v_tydnu()

Range("A1") = "Pondělí"

Range("A2") = "Úterý"

Range("A3") = "Středa"

Range("A4") = "Čtvrtek"

Range("A5") = "Pátek"

Range("A6") = "Sobota"

Range("A7") = "Neděle"

End Sub

V makru se nyní již neopakuje zbytečné klikání a zároveň je i jasněji pochopitelné. Zkrátka říká,

co chceme do které buňky napsat.

Takto jednoduše provedete v makru jakoukoliv úpravu. Úpravy navíc není třeba ukládat. Makro jen

znovu spustíte a hned bude využívat nový, Vámi upravený, kód.

Vygenerovaný kód Excelem při relativním záznamu makra „Dny_v_tydnu_2“:

Sub Dny_v_tydnu_2()

ActiveCell.FormulaR1C1 = "Pondělí"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Úterý"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Středa"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Čtvrtek"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Pátek"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Sobota"

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveCell.FormulaR1C1 = "Neděle"

ActiveCell.Offset(-5, 0).Range("A1").Select

End Sub

Page 26: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 26

Vysvětlení kódu:

V kódu se opět opakují dva řádky, ale tentokráte se liší:

o ActiveCell.FormulaR1C1 = „Pondělí“ – tento řádek je s absolutním záznamem makra

shodný. Opět říká, aby program zapsal název dne do aktivní buňky – tedy do té,

ve které je aktuálně kurzor.

o ActiveCell.Offset(1, 0).Range(„A1“).Select – tento řádek vždy označí buňku, která je

o jeden řádek níže než aktuálně. Stará se o to příkaz Offset – ten říká o kolik řádků

a o kolik sloupců se chceme posunout z aktuálního místa. Příkaz Range(„A1“) v tomto

případě neznamená, že pracujeme s údajem v buňce A1, což je možná matoucí. Časem

zjistíte, že tuto část kódu záznamník vkládá automaticky, ale v našem případě není

potřeba. Makro si prakticky vytváří buňku A1 jako levý horní roh aktuální oblasti.

A protože nemáme žádnou označenou oblast, ale pouze buňku, můžeme pracovat

pouze s ní a tudíž tuto část budeme ignorovat. Praktický význam si ukážeme

na semináři.

Opět si ukážeme, jak kód upravit, aby byl přehlednější a efektivnější po stránce výkonu:

Sub Dny_v_tydnu2()

ActiveCell = "Pondělí"

ActiveCell.Offset(1, 0) = "Úterý"

ActiveCell.Offset(2, 0) = "Středa"

ActiveCell.Offset(3, 0) = "Čtvrtek"

ActiveCell.Offset(4, 0) = "Pátek"

ActiveCell.Offset(5, 0) = "Sobota"

ActiveCell.Offset(6, 0) = "Neděle"

End Sub

Opět máme jen pár řádků, které fungují tak, jako předtím, ale značně zredukovaly původní kód,

který nebyl úplně přehledný. Zrušili jsme opět klikání (nikde nenajdeme příkaz Select). Vždy

chceme, aby makro zapsalo název dne do aktuální buňky a další dny bude zapisovat do buněk

pod sebe, které jsou vzdáleny od této aktuální (kam zapíšeme Pondělí) 1 až 6 buněk (Úterý

až Neděle). Důležité je tedy pochopit, že když jsme zrušili posun kurzoru, vše se vztahuje

k buňce, která byla označená před spuštěním makra.

Nyní vítejte ve světě VBA programátorů. Perfektní je, že si veškeré úpravy můžete ihned zkusit v praxi

a tak se postupně učit, co a jak dělat správně a co naopak nedělat – editor Vás vždy varuje v situacích,

kdy není syntaxe správná a tudíž Vám nedovolí kód v chybné podobě ponechat.

Page 27: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 27

OKNO IMMEDIATE

Pro testy chování jednotlivých příkazů, funkcí či procedur máte dvě možnosti. Buď příkaz či funkci

umístíte do nějakého makra a tu pak spustíte, nebo to uděláte přímo v okně Immediate. Okno

Immediate otevřeme příkazem nabídky View – Immediate. Okno je standardně ukotveno k dolnímu

okraji okna editoru.

V příkladu na Obr. 30 je zapsán kód, který přejmenuje první list v Excelovském sešitu na První. Okno

Immediate bylo v tomto případě použito pro rychlé přejmenování listu. Hodí se Vám například

v momentě, kdy se s editorem VBA naučíte a začnete psát svá makra. Uprostřed makra zjistíte,

že potřebujete v rámci sešitu Excelu něco změnit a místo kde se to dá udělat je právě zde.

Obr. 30 Okno Immediate

Zkuste zde napsat Beep a stisknout Enter. Jestliže máte v počítači zapnutý zvuk, ozve se pípnutí. Okno

samozřejmě umí mnohem víc, o čemž se přesvědčíte na kurzu.

Vestavěné příkazy ani vlastní procedury obvykle do okna Immediate nic nevypisují.

Page 28: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 28

KROKOVÁNÍ

Krokování programu se využívá jako základní prostředek nalezení chyb v programu. Během krokování

můžeme sledovat hodnoty proměnných v programu, správnost vyhodnocení proměnných atd. Pokud

využíváme krokování k testování proměnných, je třeba zobrazil okno Locals Window, ve kterém

uvidíme v reálném čase stavy jednotlivých proměnných. U našich maker dnů v týdnu se toto netýká,

protože makra neukládají nic do paměti, ale rovnou vypisují konkrétní textové řetězce do buněk.

Do režimu krokování se nejjednodušeji dostaneme zmáčknutím klávesy F8 – důležité je, abychom měli

kliknuto kdekoliv v kódu makra, které chceme krokovat.

Během krokování se vždy provede jeden příkaz (viz Obr. 31 – žluté znázornění). Pokud chceme vykonat

následující příkaz, znovu stiskneme klávesu F8. Režim ladění je možné kdykoliv ukončit tlačítkem Reset

(ikona modré kostičky na panelu nástrojů v editoru VBA).

Při ladění je ideální spustit vedle sebe jak okno editoru VBA, tak samotný sešit Excelu, ve kterém je

ihned vidět výsledek každého kroku. Na příkladu níže je uvedeno krokování makra Dny_v_tydnu, které

již bylo „očištěno“ od zbytečných řádků. Při provádění je patrné, že se kurzor v Excelovské tabulce

nepohybuje (nekliká se), ale pouze se zapisují textové údaje do buněk.

Obr. 31 Krokování programu

Page 29: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 29

ZÁKLADY JAZYKA VBA

Podprogram: je to sled příkazů, vykonávaný jako celek a tvořící uzavřenou jednotku. Běh spuštěného

programu je možné přerušit voláním jiného, po jehož vykonání se řízení vrací zpět do nedokončeného

volajícího programu.

PROCEDURY

Procedura: jedná se o podprogram, který provede sérii příkazů a skončí. Jedná se o libovolný sled

příkazů mezi řádky Sub a End Sub.

Příklad procedury:

Sub Test()

Sum = 1 + 1

MsgBox “Výsledek je “ & Sum

End Sub

Toto makro nedělá nic jiného, než že po spuštění ukáže výsledek součtu dvou jedniček – tedy výsledek

bude vždy 2.

Kdybychom makro upravili následovně…

Sub Test()

Prvni = Range(„A1“)

Druhe = Range(„A2“)

Sum = Prvni + Druhe

MsgBox “Výsledek je “ & Sum

End Sub

…makro by při každém jeho spuštění spočítalo součet hodnot z buněk A1 a A2. První dva řádky načtou

do proměnných Prvni a Druhy hodnoty z buněk, následně proběhne matematická operace součet

a výsledek je uložen do proměnné Sum. Výsledek vypíšeme pomocí funkce MsBox (okno se zprávou)

na obrazovku. Toto makro bude tedy reagovat na aktuální hodnoty v buňkách A1 a B1 a je možné

o použít obecněji než makro předchozí, které sčítá dvě konstantní hodnoty.

Page 30: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 30

FUNKCE

Je to podprogram, který kromě toho, že provede nějaké příkazy, také vrací určitou hodnotu. Jedná se

o libovolný sled příkazů mezi řádky Function a End Function. Funkci bude možné dohledat mezi

klasickými tabulkovými funkcemi Excelu a používat jí v tabulkách jako každou jinou (SUMA, KDYŽ,

SVYHLEDAT, …).

Funkce již mají většinou argumenty, které jsou uvedeny v závorkách za názvem funkce.

Prostřednictvím těchto argumentů vstupují do funkce hodnoty, které jsou ve funkci vyhodnocovány.

Příklad funkce:

Function MS(KMH)

MS = KMH * 1000 / 3600

End Function

Vysvětlení funkce výše:

Tato funkce převádí hodnoty vyjádřen v jednotce km/h na m/s.

Její použití bude jednoduché.

V tabulce (Obr. 32) budeme mít ve sloupci A několik hodnot v km/h a do sloupce B chceme

vypočítat hodnoty v m/s.

Protože budeme tento přepočet provádět denně na několika místech, vytvořili jsme si funkce

s názvem MS (viz výše). Použití bude jednoduché. Do buňky zapíšeme vzorec =MS(A2), kde A2

je souřadnice, ve které se nachází hodnota, kterou chceme přepočítat. To je celé.

Obr. 32 Použití vlastní funkce

Page 31: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 31

PŘÍKAZY A JEJICH ZÁPIS

Konvence říká, že na jeden řádek v kódu píšeme jeden příkaz. Je to nejpřehlednější způsob a vylučuje

některé chyby vzniklé zápisem.

Je-li příkaz moc dlouhý, lze jej rozdělit na více řádků. Na konci každého řádku je nutné napsat znak

pokračování řádku, což je mezera následovaná podtržítkem („ _“).

NÁZVY OBJEKTŮ, PROMĚNNÝCH A KONSTANT - PRAVIDLA

Musí začínat písmenem.

Nesmí obsahovat tyto znaky: mezera, &, #, @, $, %, !, čárka, tečka.

Neměli by obsahovat akcentované znaky.

Názvy nesmí být delší než 255 znaků, ale v praxi nepoužívejte více než 32 znaků.

Nemůžete použít dva stejné názvy v jednom rozsahu platnosti proměnné, či objektu.

Page 32: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 32

DATOVÉ TYPY PROMĚNNÝCH A KONSTANT

Název: pravidla pro definici viz výše.

Datový typ: vyjadřuje jaký typ hodnoty, můžeme do proměnné umístit a kolik místa v paměti zabere.

Platnost: určuje, které části aplikace mohou s proměnnou pracovat.

Životnost: specifikuje dobu existence proměnné.

Datový typ

Datový typ určuje, co všechno můžete do proměnné uložit, a také způsob, jakým budou data uložena

v paměti. Jestliže datový typ nezadáte, použije VBA výchozí typ Variant, který povoluje zadání všech

možných hodnot.

Typ Velikost Rozsah hodnot a význam

Byte 1 bajt Číslo 0 až 255; používá se pro ukládání binárních dat.

Integer 2 bajty Čísla v rozsahu -32 768 až 32 767. Základní typ pro práci s celými

čísly.

Long 4 bajty Celá čísla v rozsahu -2 147 483 648 až 2 147 483 647.

Single 4 bajty Desetinná čísla s přesností na 6 desetinných míst. Rozsah možných

hodnot je uveden v nápovědě.

Double 8 bajtů Desetinná čísla s dvojnásobnou přesností při výpočtu. Rozsah

možných hodnot je uveden v nápovědě.

Currency 8 bajtů Číslo s pevným počtem 4 desetinných míst. Rozsah možných

hodnot je uveden v nápovědě. Výpočty s tímto typem probíhají

rychleji než u typu Single či Double.

Decimal 14 bajtů Tento typ není možné deklarovat, proměnnou tohoto typu lze

získat jen převodem proměnné typu Variant. Tento typ je určen pro

čísla s extrémním počtem desetinných míst.

String Různá Textové řetězce.

Boolean 2 bajty Logická hodnota True nebo False.

Date 8 bajtů Datum v rozsahu 1. leden 100 až 31. prosinec 9999.

Object 4 bajty Jakýkoliv odkaz na objekt.

Variant různá Základní typ, může obsahovat speciální hodnoty

Tab. 1 Datové typy

Page 33: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 33

Rozsah platnosti a životnost

Každá proměnná a konstanta má svůj rozsah platnosti určující, které podprogramy jsou schopny

s touto proměnnou pracovat (které ji vidí).

Lokální proměnné: mohou být použity pouze v tom podprogramu, v němž se vyskytují.

Modulové proměnné: jsou dostupné v rámci celého modulu a lze je proto využít třeba k uložení

hodnoty, která má být dostupná někdy v jiné proceduře.

Globální proměnné: mohou být použity ve všech modulech, neboli v celém sešitu.

Deklarace proměnných

Deklarací rozumíme určení jména, typu a platnosti proměnné předtím, než tuto proměnnou v kódu

použijeme. Ve VBA nemusíme lokálním proměnnou deklarovat, místo toho ji lze přímo v kódu přiřadit

nějakou hodnotu. Vystavujeme se však několika problémům:

Pokud není proměnná deklarována, je jí přiřazen typ Variant. To znamená vyšší spotřebu místa

v operační paměti.

Kdykoliv, když při zápisu jména proměnné uděláme chybu, vznikne nová proměnná.

Je výhodné nastavit editor VBA tak, aby deklaraci lokálních proměnných vynutil. Toto vynucením

zajistíte zapnutím volby Require Variable Declaration, kterou najdete v okně možností Tools, Options

na kartě Editor.

Vlastní deklaraci zajistí příkaz Dim:

Dim jmeno_promenne [As typ_promenne]

Public Sub Prvni()

Dim jmeno As String

jmeno = “Helena Obříková“

Druha

End Sub

Public Sub Druha()

MsgBox jmeno

End Sub

Datový typ String

Proměnlivá délka: Dim Jmeno As String

Pevná délka 20 znaků: Dim Jmeno As String * 20

Page 34: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 34

OPERÁTORY

VBA obsahuje několik typů operátorů (aritmetické, logické, relační a spojovací). V následujících

tabulkách (Tab. 2, Tab. 3, Tab. 4, Tab. 5) uvedu pouze jejich přehled a příklad použití.

Aritmetické operátory

Operátor Význam

^ - umocnění (výsledek = číslo ^ exponent)

* - násobení (výsledek = číslo1 * číslo2)

/ - dělení (výsledek = číslo1 / číslo2)

\ - celočíselné dělení (výsledek = číslo1 \ číslo2)

Mod - zbytek po celočíselném dělení (výsledek = číslo1 Mod číslo2)

+ - sčítání (výsledek = výraz1 + výraz2)

- - odečítání (výsledek = číslo1 – číslo2)

Tab. 2 Aritmetické operátory

Relační operátory

Operátor Význam

< - menší než

<= - menší nebo rovno

> - větší než

>= - větší nebo rovno

<> - nerovná se

= - rovná se

Is - používá se k porovnání odkazů na objekty ve dvou proměnných.

Like - používá se k porovnání dvou řetězců.

Tab. 3 Relační operátory

Page 35: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 35

Spojovací operátory

Operátor Význam

& - používá se k vynucení spojení řetězců dvou výrazů (výsledek = výraz1 &

výraz2)

+ - spojení dvou výrazů, pokud alespoň jeden typu string (výsledek = výraz1 +

výraz2)

Tab. 4 Spojovací operátory

Logické operátory

Operátor Význam

And - logický součin dvou výrazů. Podmínka je True, pokud oba výrazy jsou True

Eqv - logická shoda dvou výrazů. Podmínka je True, pokud jsou oba výrazy stejné

Not - logická negace výrazu. Podmínka je True, pokud výraz je False

Or - logické nebo dvou výrazů. Podmínka je True, pokud alespoň jeden výraz je

True

Xor - exluzivní logické nebo. Podmínka je True, pokud jeden výraz je True, druhý

False

Tab. 5 Logické operátory

Page 36: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 36

ROZHODOVACÍ BLOKY

V mnoha případech je nutné vykonávat v kódu různé věci v závislosti na určité podmínce.

Rozhodovací blok If-Then-Else

Nejčastěji používanou skupinou příkazů ve VBA je If – Then (Obr. 33). Tato běžná instrukce představuje

jeden ze způsobů jak vaši aplikaci opatřit „schopností rozhodování“.

Syntaxe:

If podmínka Then

[příkazy_pro_splněno]

[Else If podmínka – n Then]

[alternativní_příkazy – n]

[Else]

[příkazy_pro_standardní_případ]

End If

Obr. 33 Podmínka If-Then-Else

Příklad:

Sub Pozdrav()

If Time < 0.5 Then

MsgBox “Dobré dopoledne“

ElseIf Time >= 0.5 And Time < 0.75 Then

MsgBox “Dobré dopoledne“

ElseIf Time >= 0.75 Then

MsgBox “Dobrý večer“

End If

End Sub

Page 37: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 37

Ekvivalentní zápis:

Sub Pozdrav()

If Time <0.5 Then

MsgBox “Dobré dopoledne“

Else

If Time >= 0.5 And Time < 0.75 Then

MsgBox “Dobré dopoledne“

Else

If Time >= 0.75 Then

MsgBox “Dobrý večer“

End If

End If

End If

End Sub

Page 38: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 38

CYKLY

Potřebujeme-li určitou část kódu provádět opakovaně, uděláme to nejlépe pomocí cyklu.

Cykly For – Next

Známe-li počet požadovaných opakování, použijeme příkaz For…Next (Obr. 34).

Cyklus s pevným počtem opakování:

Obr. 34 Cyklus For-Next

Syntaxe:

For počítadlo = počátek To konec [Step krok]

[příkazy]

Next [počítadlo]

Příklad:

Potřebujeme sečíst hodnoty z padesáti buněk ve sloupci A počínaje buňkou A1.

Sub SoucetHodnot()

Range("A1").Select

soucet = 0

For i = 1 To 50

a = ActiveCell.Value

soucet = soucet + a

ActiveCell.Offset(1, 0).Select

Next i

MsgBox soucet

End Sub

Page 39: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 39

Cykly Do While

Tento cyklus se provádí, dokud je splněna podmínka.

Cyklus s podmínkou na začátku:

Obr. 35 Cyklus Do-While s podmínkou na začátku

Cyklus s podmínkou na konci:

Obr. 36 Cyklus For-Next s podmínkou na konci

Syntaxe:

Do [While podmínka]

[příkazy]

Loop

Page 40: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 40

nebo:

Do

[příkazy]

Loop [While podmínka]

Příklad:

Potřebujeme vyplnit všechny prázdné buňky hodnotou nula. Pokud makro narazí na vyplněnou buňku,

skončí.

Sub DoWhileDemo()

Do While IsEmpty(ActiveCell)

ActiveCell.Value = 0

ActiveCell.Offset(1, 0).Select

Loop

End Sub

Příklad:

Obdoba předchozího příkladu, avšak aktivní buňka na začátku budou nulou vyplněna vždy, podmínka

se bude testovat až při posunu o buňku níže.

Sub DoWhileDemo2()

Do While

ActiveCell.Value = 0

Aktive.Cell.Offset(1, 0).Select

Loop IsEmpty(ActiveCell)

End Sub

Page 41: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 41

SPECIÁLNÍ MAKRA AUTO_OPEN A AUTO_CLOSE

Pokud vyžadujete, aby Excel při otevření, případně zavření, sešitu vykonal jakoukoliv akci či skupinu

akcí, můžete využít speciálních maker Auto_Open a Auto_Close, která jsou k tomuto účelu přímo

určená.

Makro Auto_Open

Makro se spustí okamžitě po otevření sešitu a provede operace, které jsou zaznamenány v těle makra.

Může se využít např.:

K nastavení písma.

K nastavení šířky sloupců, výšky řádků.

K nastavení buňkového kurzoru na konkrétní buňku.

K pozdravu uživatele, jeho přihlášení apod.

Příklad využití makra Auto_Open:

Při každém spuštění sešitu budeme vyžadovat zobrazení informační zprávy. Budeme postupovat

následovně:

1. Otevřeme Modul v prostředí editoru VBA.

2. Napíšeme následující kód:

Sub Auto_Open()

MsgBox “Vítejte v tabulkách firmy Educio s.r.o.“

End Sub

3. A nyní nás již při každém otevření sešitu bude Excel „otravovat“ s touto zprávou.

Makro Auto_Close

Makro se spustí těsně před zavřením sešitu a provede operace, které jsou zaznamenány v těle makra.

Může se využít např.:

K uložení sešitu.

K vytištění listu.

K zaslání sešitu e-mailem.

K provedení standardních nastavení, které byly změněné makrem Auto_Open apod.

Page 42: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 42

Příklad využití makra Auto_Close:

Bez dotazu programu Excel budeme chtít automaticky ukládat sešit při jeho zavření se všemi jeho

změnami. Budeme postupovat následovně:

1. Otevřeme Modul v prostředí editoru VBA.

2. Napíšeme následující kód:

Sub Auto_Close()

ActiveWorkbook.Save

End Sub

3. A nyní již při každém zavření sešitu bude Excel dokument automaticky ukládat.

Page 43: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 43

MSGBOX A INPUTBOX

MsgBox

Pokud budete chtít uživateli Vašeho sešitu sdělit konkrétní informaci, využijete zcela jistě funkce

MsgBox, neboli okna se zprávou.

Funkce MsgBox má celkem pět parametrů, z toho jen jeden povinný.

Syntaxe InputBox je následující:

MsgBox(prompt [, buttons] [, title] [, HelpFile] [, Context])

Syntaxe je rozebrána v tabulce níže:

Parametr Význam

prompt Zpráva zobrazená v okně hlášení (povinný).

buttons Stanoví druh a počet tlačítek v okně (volitelný).

title Text v titulkovém pruhu (volitelný).

HelpFile Název souboru nápovědy, který je přidružen oknu hlášení (volitelný).

Context Identifikátor kontextového tématu nápovědy (volitelný).

Příklady použití InputBox:

Potřebujeme informovat uživatele o nemožnosti výpočtu (Obr. 37).

MsgBox “Makro bylo úspěšně provedeno“

Obr. 37 MsgBox – příklad 1

Page 44: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 44

Oproti prvnímu případu navíc vyplníme nadpis okna (titulkový řádek) a doplníme výstražnou

ikonu (Obr. 38).

MsgBox “Nelze vypočítat kvůli chybějícím datům.“, vbCritical, “Chyba“

Obr. 38 MsgBox – příklad 2

Zeptáme se uživatele, zda chce opravdu pokračovat. V případě, že uživatel zvolí odpověď Ano,

program bude pokračovat, pokud zvolí odpověď Ne, makro se zastaví. Tlačítko Ne bude navíc

označené jako výchozí volba (viz Obr. 39).

Odpověď = MsgBox(“Chcete pokračovat?“, vbYesNo + vbQuestion + _

vbDefaultButton2)

If Odpověď = vbNo Then Exit Sub

Obr. 39 MsgBox – příklad 3

Page 45: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 45

InputBox

Funkce i metoda InputBox představují standardní způsob, jak uživatele Excelu požádat o zadání nějaké

hodnoty, kterou makro vyžaduje pro svou činnost.

Základní rozdíl mezi funkcí a metodou InputBox spočívá v tom, že metoda InputBox si dokáže vynutit

typ zadávané hodnoty pomocí parametru type.

Syntaxe InputBox je následující:

InputBox(prompt [, title] [, default] [, left] [, top] [, helpfile]_ [,

helpcontextid] [, type])

Syntaxe je rozebrána v tabulce níže (Tab. 6):

Parametr Význam

prompt Zpráva zobrazená v okně hlášení (povinný).

title Titulek okna (volitelný).

default Výchozí hodnota, která bude v InputBox zobrazena ihned po jeho otevření a

vybrána do bloku, aby ji uživatel mohl přímo přepsat (volitelný).

left, top Určují pozici okna InputBox (volitelné).

helpfile Název souboru nápovědy a identifikátor příslušného hesla.

helpcontextid (volitelné)

type Jen u metody InputBox. Definuje typ zadané hodnoty, který musí být dodržen

(volitelný). Možné hodnoty jsou:

0 – vzorec;

1 – číslo;

2 – text;

4 – logická hodnota True nebo False;

8 – odkaz na buňku ve formě objektu Range;

16 – chybová hodnota;

64 – pole hodnot.

Tab. 6 MsgBox – syntaxe

Page 46: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 46

Příklady použití InputBox:

Potřebujeme po uživateli zadat číslo a zkontrolovat, zda jde skutečně o číslo (Obr. 40). V této kapitole

se tedy budeme zabývat tím, jak „převzít“ dané číslo od uživatele a uložit ho do nějaké proměnné

(např. x).

x =Application.InputBox("Zadej číslo", Type:=1)

Obr. 40 InputBox – příklad 1

Potřebujeme po uživateli zadat číslo, které v základu předvyplníme na 1,25 z důvodu vysoké frekvence

výskytu a okno pojmenujeme nadpisem Přehledy (Obr. 41).

x =InputBox("Zadej koeficient růstu", "Přehledy", 1.25)

Obr. 41 InputBox – příklad 2

Všimněte si, že jsme pro ukázku v tomto případě nechtěli vynutit typ číslo, proto nemusí metodě

InputBox předcházet klíčový objekt Application.

Page 47: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 47

PRAKTICKÁ ČÁST

Na semináři se naučíte používat základní příkazy v rámci VBA a díky nim budete schopni

naprogramovat vlastní makra, která Vám pomohou při běžné práci.

Tato skripta Vám pomohou orientovat se v základech maker a jako opora v základech VBA.

Součástí těchto skript by měla být dvoudenní sbírka příkladů, kterou vypracujete společně s lektorem

na semináři přímo na svých počítačích. Díky tomu budete mít v ruce jak tento teoretický manuál,

tak praktické příklady, což se bude doplňovat.

Na semináři se naučíte:

Zaznamenat makra.

Pracovat s editorem VBA.

Makra, která pracují s buňkami, rozsahy, sloupci, řádky.

Makra, která pracují s listy.

Makra pracující s vstupem od uživatele a makra pracující s výstupy na obrazovku v podobě

oken (InputBox, MsgBox).

Makra, která se provádí automaticky po spuštění či po uzavření sešitu (Auto_Open,

Auto_Close).

Makra pracující s podmínkami při vyhodnocování stavu (podmínky If - Else).

Makra pracující se smyčkami – v cyklech (Do - While, For - Next).

Funkce, kterými doplníte základní tabulkové funkce pro běžné použití.

Základy práce s formuláři.

Page 48: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 48

NEJČASTĚJŠÍ KLÁVESOVÉ ZKRATKY V MS EXCEL

ZÁKLADNÍ OPERACE SE SCHRÁNKOU

Ctrl + C Kopírovat Ctrl + V Vložit Ctrl + X Vyjmout

ZÁKLADNÍ KLÁVESOVÉ ZKRATKY PRO OZNAČOVÁNÍ A POHYB V TABULKÁCH

Ctrl + A Označí aktuální oblast (při

druhém stisku označí celý list) Ctrl + ← Posun v tabulce úplně vlevo Ctrl + Shift + ←

Označí řádek od aktuální

buňky až úplně vlevo

Ctrl + * Označí aktuální oblast Ctrl + ↑ Posun v tabulce úplně nahoru Ctrl + Shift + ↑ Označí sloupec

od aktuální buňky nahoru

Ctrl + . Posun mezi rohovými buňkami

v označené oblasti buněk Ctrl + → Posun v tabulce úplně doprava Ctrl + Shift + →

Označí řádek od aktuální

buňky až úplně doprava

F8 Aktivuje rozšířený výběr

(lze vybírat bez nutnosti myši). Ctrl + ↓ Posun v tabulce úplně dolů Ctrl + Shift + ↓

Označí sloupec

od aktuální buňky dolů

Shift +

mezerník Označí řádek

Ctrl +

mezerník Označí sloupec

Ctrl + Shift +

mezerník Označí celý list

KLÁVESOVÉ ZKRATKY VYUŽÍVANÉ PŘI PRÁCI S NÁSTROJI

Ctrl + F Najít Ctrl + O Otevřít Ctrl + B Tučné písmo

Ctrl + H Nahradit Ctrl + S Uložit Ctrl + I Kurzíva

Ctrl + Z Krok zpět Ctrl + G (F5) Přejít na Ctrl + U Podtržené písmo

Ctrl + P Tisknout Alt + F8 Zobrazit makra Shift + F11 Nový list

Ctrl + T Vložit tabulku Alt + F11 Spustit editor maker VBA Ctrl + N Nový sešit

KLÁVESOVÉ ZKRATKY VYUŽÍVANÉ PŘI PRÁCI SE VZORCI

F3 Použít název ve vzorci F4

Změna typu odkazu

(absolutní, relativní,

smíšený) - $

F9 Přepočítat celý sešit

Ctrl + F3 Správce názvů Ctrl + , Zobrazit vzorce Shift + F9 Přepočítat celý list

Shift + F3 Vložit funkci Alt + = Vloží funkci SUMA Ctrl + ; Vloží aktuální datum

Ctrl + Enter

Vložit do označených buněk

stejný obsah (zmnožený

vstup)

Alt + Enter Řádkovat v rámci jedné

buňky

Ctrl + Shift +

Enter

Potvrzení maticového

vzorce (kolem vzniknou

složené závorky { } )

Page 49: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 49

SPECIÁLNÍ ZNAKY PŘI PRÁCI S MS EXCEL

AltGr + X # AltGr + C & AltGr + š ^

AltGr + , < AltGr + F [ AltGr + B {

AltGr + . > AltGr + G ] AltGr + N }

Page 50: makra Automatizace práce - IT lektor MS Office | … Makra.pdf · Je nutné poznamenat, že se nejedná o zcela vyčerpávající materiál, ale pouze o doprovodná skripta ke školení

© Jaroslav Nedoma

MS Excel – automatizace práce pomocí maker 50

ZÁVĚR

Dostali jsme se až na samotný závěr publikace. Naučili jsme se pracovat s makry a zjistili jsme, že jsou

velkým pomocníkem Excelu. Pokud jste se dočetli až sem, můžete o sobě prohlásit, že jste právě

vstoupili do světa programátorů maker a dokážete si tak usnadnit každodenní práci v Excelu.

Budu se na Vás těšit zase na příštím školení, na kterém se seznámíme s dalšími zajímavými nástroji,

a to v jakémkoli jiném programu sady Microsoft Office.

Na www.lektornedoma.cz se můžete v PREMIUM sekci dostat k podkladům k problematice MS Office.

Přístup do PREMIUM sekce získáte po vyplnění referenčního dotazníku na adrese

http://lektornedoma.cz/dotaznik. Děkuji za jeho vyplnění. Díky Vašim podmětům mohu zlepšovat

kvalitu mých seminářů.

Přeji hodně úspěchů při práci s Excelem a jeho nástroji.

Sestava skript ze dne: 2017-01-10.

Doporučeno používat pro verze MS Office 2007 – 2016.

Budu rád za nahlášení Vámi objevených chyb v těchto materiálech, abych je mohl opravit

na správnou variantu. Jakékoliv podněty k vylepšení přijímám na e-mailu [email protected].