ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA Anna Mecová, Zuzana Sedlaříková, Barbora Vrbasová, Alexandra Sečányová, Nikol Istenčinová, Dagmar Strouhalová
ALGORITMUS
Algoritmus je přesný návod či postup, kterým lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip řešení problému. Algoritmizace = proces vytváření a sestavování algoritmů Programování = zakódování algoritmu do zvoleného programovacího jazyka NE Začátek Zadej poloměr Je číslo? Výpočet Zobraz plochu kruhu ANO Větší než nula? Konec NE
Algoritmus je pracovní postup, který splňuje tyto povinné vlastnosti: REZULTATIVNOST FINITNOST (KONEČNOST) ELEMENTÁRNOST DETERMINOVANOST (JEDNOZNAČNOST) START DOJDI K SEMAFORU SVÍTÍ ČERVENÁ? + ČEKEJ! - PŘEJDI ULICI! KONEC
MAKRO CO ZNAMENÁ? JAKÝ JE ROZDÍL MEZI MAKREM A FUNKCÍ?
MAKRO Makro z řeckého slova μακρό velké a nebo daleko je postupnost instrukcí, která se začne po aktivaci makra postupně realizovat. Dají se do něj uložit často používané akce v programu Visual Basic Příklady často se opakujících se kroků v Excelu, při kterých je možné použít makro: Úprava vzhledu tabulky Obsluha ovládacích prvků Definování vlastních funkcí
Na editování VBA kódu slouží VBA editor, který je vestavěnou součástí každého Excelu a spouští se pomocí klávesové zkratky ALT + F11. Skládá se z hlavního okna, ve kterém otevřeme modul a z postranních panelů, prostřednictvím kterých můžeme nakonfigurovat různé nastavení, které nám zjednoduší programování ve VBA VBA makro se skládá z Modulu (Module), Formulářů (Form) a Stylů (Style) Module je základní stavební prvek, které v sobě bude obsahovat VBA kód Form slouží na vytvoření uživatelského prostředí, které umožní používání programu koncovému uživateli
libovolný název vašeho makra (bez diakritiky a bez mezer) makro uložit v - vyberte pouze váš dokument můžete zadat stručný popis co bude dělat pro jeho pozdější identifikaci Pomocí hlavní nabídky Nástroje Makro Záznam nového makra, vyvolejte dialogové okno a zadejte:
MAKRA BEZ PARAMETRŮ Používají se pro definici konstant, kdy se namísto konstanty používá nějaké speciální slovo. Pravidlem je psát identifikátor makra bez velkých písmen. Kromě standardních maker se dají vytvořit i vlastní makra (definované počte prvků v poli). Makro se definuje příkazem #define a dá se zrušit příkazem #undef. MAKRA S PARAMETRY Makra můžou být argumenty, které jsou uzavřené v kulatých závorkách a pokud obsahují víc jak jeden argument, oddělují se čárkou. Mezi pojmenováním makra a závorku obsahující argumenty nesmí být mezera.
POJEM FUNKCE Funkce je příkaz či sled příkazů vykonávaných jako celek a tvořící uzavřenou jednotkou Vrací určitou hodnotu, a tuto hodnotu můžeme uložit do proměnné (resp. do paměti počítače) např. funkce y=log (x), tzn. známý zápis funkce logaritmus, ze zadaného čísla x vypočítá jiné číslo a vyjádří (resp. Na-vrátí) je jako číslo y
VBA VYTVOŘENÍ VLASTNÍ FUNKCE Běžný Excel 2010 má přes 400 funkcí. Přesto se můžeme dostat do situace, kdy by se nám hodila funkce, která v Excelu není. Nebo nás nebaví opakovaně zapisovat dlouhý vzorec obsahující více funkcí a chceme si vytvořit funkci, která tuto kombinaci funkcí nahradí. Příklad V mém případě chci vytvořit funkci, která spočte obsah obdélníka na základě dvou vstupních buněk. Netvrdím, že je to zrovna vrchol praktičnosti, ale myslím že se na tom dá vytvoření jednoduché funkce dobře ukázat. Návod Jdu do editoru maker (karta Vývojář / tlačítko Visual Basic), vytvořím nový modul a zapíšu funkci. V mém případě vypadá takto:
Editoru funkcí mohu zavřít. Od teď už se s mojí funkcí pracuje jako s jakoukoliv jinou. Jen si musím uvědomit, že tato funkce existuje v zásadě jen v souboru, kde jsem ji vytvořil.
POJEM MAKRO Makro označuje posloupnost akcí nebo funkcí, které usnadní určitou činnost. Používají se většinou jako posloupnost kroků při výpočtech, úpravách textu a podobně. Jednoduchým příkladem může být makro pro odstranění speciálních znaků
Laicky řečeno: Představte si, že v Excelu děláte opakovaně nějakou rutinní činnost. A protože je zbytečné, abyste činnosti 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 tomuto účelu slouží makro.
CO ZNAMENÁ POJEM DEBUG? = LADĚNÍ, možnost hledání chyb v kódu VBA
ZÁKLAD LADĚNÍ Základem úspěšného ladění je zjišťování hodnot proměnných a návratných hodnot funkcí DEBUG Vypisuje uvedené hodnoty do okamžitého okna (ladícího).
JAK SPUSTIT LADÍCÍ OKNO? Ladící okno (immediate window) lze spustit přes klávesovou zkratku CTRL + G nebo přes menu View Immediate Window
PŘÍKLAD a = 1 For a = 1 To 10 Debug.Print a Next
VÝSLEDEK
CHYBA Chyby často vzniknou tím, že se do proměnné načte nebo uloží jiná hodnota, než která by tam měla být. Proto je šikovné sledovat, jak se hodnota proměnné mění. Ideální je samozřejmě spojit sledování proměnné s krokováním, a sledovat, jak se proměnné mění po jednotlivých krocích. Sledovanou proměnnou přidáme přes Debug/ Add watch
Sledovanou proměnnou můžeme přidat také jednorázově - pokud se chceme v konkrétním okamžiku podívat, jakou hodnotu má vybraná proměnná. Stačí v textu označit název proměnné a pak Debug/ Quick watch
ZASTAVENÍ MAKRA V URČITÉM BODĚ ZASTAVENÍ MAKRA V URČITÉM BODĚ Pokud chceme makro zastavit ve chvíli, kdy dojde do určitého bodu (nebo ověřit, že tímto bodem prochází), stačí přidat Breakpoint. Přidáme ho kliknutím do šedého pruhu vlevo od textu
SPUŠTĚNÍ MAKRA
ASCII TABULKA & UNICODE
ASCII TABULKA americký standardní kód pro výměnu informací znaky anglické abecedy a znaky v informatice na češtinu nestačí 48 50 čísla 65 90 velká písmena 97 122 malá písmena interpunkce, speciální znaky
UNICODE technická norma pro oblast výpočetní techniky pro všechny znaky = více mezinárodní nejnovější verze UNICODE 8.0 (červen 2015) 129 moderních i historických písem 120.000 znaků Cíle: jednotnost, univerzálnost, maximální využití
PŘÍKLAD PROGRAMOVÁNÍ VE VBA
Nadefinujte funkci inch2cm(x), která délku x vyjádřenou v palcích převede na centimetry. Jakou hodnotu vrátí příkaz Left("pondělí", 2)? Jakou hodnotu vrátí funkce zpracuj pro hodnotu parametru retezec = "CZ00216305"? Function zpracuj(retezec) zpracuj = Right(retezec, Len(retezec) - 2) End Function.
DĚKUJEME ZA POZORNOST
ZDROJE www.wikipedia.cz http://www.ivt.mzf.cz/algoritmizace-a-programovani/uvod-do-algoritmu/1-uvodalgoritmus/ http://popelka.ms.mff.cuni.cz/~lessner/mw/index.php/u%c4%8debnice/algoritmus /Co_je_to_algoritmus http://vyuka-excelu.cz/sk/navody-sk/makra-ako-vytvorit-makro-v-exceli/ http://www.lmctn.sk/makra_excel http://vyuka-excelu.cz/navody/makra/makra-jak-vytvorit-jednoduche-makro/ https://cs.wikipedia.org/wiki/makro_(software) www.theasciicode.com www.quicklycode.com www.microsiervos.com