Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou událost.
Spouštění makra: pomocí ikony
na kartě Vývojář a spuštěním makra
pomocí klávesové zkratky nastavené při tvorbě makra pomocí ikony na panelu nástrojů nebo příkazy v menu (individuálně nastavenými) pomocí vloženého tlačítka v listu
Druhy maker, způsoby tvorby a jejich ukládání A. Druhy maker podle umístění Při vytváření maker je velmi důležité znát, kam svá makra ukládáme, a to z následujících důvodů:
pokud je chceme používat, musíme je mít v našem Excelu otevřená;
abychom mohli makra přenášet na jiný počítač, zálohovat je a dělat v nich další možné úpravy.
1. Makra v osobním sešitu maker Pokud pracujeme stále na stejném počítači, většinou si makra ukládáme do tzv. Osobního sešitu maker. To je soubor personal.xlsb, který je vytvořen po uložení prvního makra do osobního sešitu maker (vytvoří se v umístění C:\Documents and Settings\uživatelxxx\Data aplikací\Microsoft\Excel\XLStart). Nevýhodou tedy je, že makra, která si sem zaznamenáme, jsou dostupná pouze na tom počítači, kde jsme je vytvořili a pod stejným přihlášením uživatele.
Tento soubor se vytváří automaticky, pokud vytvoříme jakékoliv makro v osobním sešitu maker, a je k dispozici vždy, je-li spuštěný MS Excel. Otevírá se totiž automaticky po zapnutí Excelu jako skrytý. V případě, že uvedený soubor smažeme, odstraníme tím z programu Excel všechna makra uložená do osobního sešitu maker. (Uvedená složka XLStart má ještě druhý význam – soubory v ní umístěné se automaticky spouštějí při startu Excelu.)
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
2. Makra v aktuálním souboru Jsou to všechna makra, která máme v právě otevřeném souboru. Budou přístupná jen tehdy, je-li uvedený soubor otevřen. V opačném případě nebudou k dispozici. Sešity obsahující makra je nutné do speciálního sešitu s příponou xlsm.
3. Makra v novém sešitu maker Je to obdoba předchozího. Tento způsob se používá tehdy, pokud chceme makra přenášet na jiný počítač a nechceme je plést s makry v osobním sešitu maker (např. z důvodů pořízení dalších maker). Potom je vhodné je mít v samostatném souboru. Dalším důvodem může být, že s makry pracujeme jen občas a nechceme je mít trvale přístupná. Současně nepatří k jednomu konkrétnímu souboru, ve kterém by jinak mohla být (například makra pracující s několika soubory).
B. Druhy maker podle způsobu vytváření 1.
Makra záznamová
Tato makra jsou vytvořena v tzv. záznamu, to znamená nahráním posloupností příkazů, které provedeme v režimu nahrávání makra.
2.
Makra přímo napsaná v programovacím jazyku VBA
Tato makra jsou napsaná pomocí editoru jazyka Visual Basic for Application, který je součástí programu MS Excel. Tento způsob tvorby maker je v podstatě již programováním a jsou nutné znalosti uvedeného programovacího jazyka. Můžeme tak například vytvořit makra s vyhledávacími podmínkami a cykly, se zobrazovanými dialogovými okny apod. Ikona
otevře editor VBA. Z nabídky Insert vybereme položku Module
Modul můžeme vložit také pomocí pravého tlačítka
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
3.
Makra psaná přímo kombinací záznamu a úpravami ve VBA
Tento způsob je vhodný pro začátečníky, kteří se učí orientovat v základních příkazech VBA. Vytvoříme v záznamu makro a potom jej upravujeme v editoru. Příklady: 1. Makro orámuje oblast, která má alespoň dva sloupce a dva řádky tak, že vnitřní čáry budou tenké a vnější tlusté a tabulku vyplní modře a. označit oblast, kterou chci upravit b. spustit nahrávání c. pojmenovat makro popř. zvolit klávesovou zkratku d. provést příslušné orámování a výplň e. zastavit záznam 2. Makro zapíše do buněk pod sebou postupně prodlužující se řetěz z hvězdiček „*“ a. zadat příkaz
a vyplnit dialog
b. zvolit příkaz c. vyplnit první buňku hvězdičkou a pokračovat dolů d. zastavit záznam Nahraný zápis makra
Nyní upravíme v editoru zdrojový kód tak, abychom mohli zadat kolik řádků hvězdiček chceme
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
Čtvrtek 10. listopadu Makra pro práci s listy Př. 1 Makro vypíše do dialogového okna listy aktivního sešitu, a to i listy skryté
Př. 2 Makro přidá do sešitu požadovaný počet listů
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech Př. 3 Makro skryje všechny listy kromě prvního
Př. 4 Makro skryje důkladně všechny listy kromě prvního. Takhle skryté listy nelze zobrazit pomocí
nástrojů v Excelu. Zobrazíme je jen pomocí prostředků VBA
Př. 5
Funkce Každá funkce musí začínat klíčovým slovem Function a končit End Function. Funkce se musí nějak jmenovat a její název nesmí obsahovat nedovolené znaky, jako je mezera, tečka vykřičník apod. Je lepší nepoužívat ani znaky s diakritikou. Jméno funkce musí začínat písmenem. Za názvem funkce v závorce následuje parametr, může jich být více (oddělují se čárkou) Parametry slouží k zadávání vstupních hodnot, každý parametr je nutné pojmenovat a lze i určit jeho datový typ Funkce nemusí mít žádný parametr Výsledkem funkce je vypočtená hodnota a také pro ni můžeme specifikovat jakého bude typu Uvnitř funkce se vypočte a funkci přiřadí návratová hodnota, přiřazení se provede znakem =
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
Funkci můžeme použít v tabulce stejným způsobem jako vestavěné funkce. V průvodci funkcí je nová funkce v kategorii Vlastní Př. 1 Funkce převede údaj o rychlosti v metrech za sekundu na údaj v kilometrech za hodinu
Př. 2 Funkce převede časový údaj na sekundy
Př. 3 Funkce spojí dva textové řetězce do jednoho a přidá mezi ně mezeru
Př. 4 Funkce podle rodného čísla rozliší, jde-li o muže nebo ženu
Funkce Trim odstraní ze začátku a z konce řetězce mezery Funkce Mid vybere ze zadaného řetězce od zadané pozice určený počet znaků. Mid (řetězec, pozice, počet znaků). Při vynechání třetího parametru vrátí funkce zbytek řetězce od zadané pozice
Zpracováno podle knihy Lenky Forstové VBA Excel v příkladech
Př. 5 Funkce z rodného čísla vypočítá datum narození