OSTRAVSKÁ UNIVERZITA P Ř ÍRODOVĚ DECKÁ FAKULTA [ VAWIN ] Vývoj aplikací ve Windows. RNDr. Miroslav Liška, CSc.



Podobné dokumenty
Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

MS Excel makra a VBA

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

DUM 06 téma: Tvorba makra pomocí VBA

DUM 05 téma: Úvod do VBA for application

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

EXCEL VBA. Programování aplikací v Excelu. Aplikační software na PC

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

3MA481 Propojení Accessu a Excelu David Hach

8 Makra Příklad 4 Excel 2007

Visual Basic for Application

Informační a komunikační technologie pro učební obory ME4 a SE4. Makra

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

10 Algoritmizace Příklad 2 Word 2007/ VBA

Příloha 6. Palety nástrojů

Programujeme v softwaru Statistica

Excel - databáze. Opakování. Soubor, který jsme upravovali. Upravený soubor. Hrubá mzda = počet kusů * Kč za kus B6=B4*B5

MS Word 2007 Elektronické formuláře

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Obsah Úvodem... 5 Co je to vlastně formulář... 6 Co je to šablona... 6 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou...

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Programujeme v softwaru Statistica - příklady

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Kapitola 11: Formuláře 151

9 Úprava maker Příklad 4 Word 2007/ VBA

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Různé barvy v grafu pro skutečnost a plán

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

ExcelVBAmodul. Podpora pro výměnu dat automatů MICROPEL s aplikací Microsoft Excel

8 Třídy, objekty, metody, předávání argumentů metod

DUM 01 téma: Obecné vlastnosti tabulkového editoru, rozsah, zápis do buňky, klávesové zkratky

ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA

Visual Basic for Applications

Makra. Orámování oblasti

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Tabulkový procesor. Základní rysy

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Programovací jazyk Pascal

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Výsledný graf ukazuje následující obrázek.

Práce s programem MPVaK

Základní škola Hluk výukové texty MS Word 2007

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

VISUAL BASIC. Přehled témat

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Cvičné příklady Hodina 2

MS SQL Server 2008 Management Studio Tutoriál

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Začínáme pracovat s tabulkovým procesorem MS Excel

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

Spuštění a ukončení databázové aplikace Access

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

MS OFFICE MS WORD. Editor rovnic - instalace

Programujeme v softwaru Statistica

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

MIDAM Simulátor Verze 1.5

Excel 2007 praktická práce

Obr. P1.1 Zadání úlohy v MS Excel

Access. Tabulky. Vytvoření tabulky

Základní vzorce a funkce v tabulkovém procesoru

Tematický celek 03 - Cvičné příklady

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

Manuál: Editace textů v textovém editoru SINPRO Úprava tabulek a internetových odkazů, řádkování

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Školení obsluhy PC stručný manuál obsluhy pro používání PC

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Excel tabulkový procesor

8. Formátování. Úprava vzhledu tabulky

Ukázka knihy z internetového knihkupectví

Microsoft Access tvorba databáze jednoduše

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

MS Word 2007 Šablony programu MS Word

Vytvoření tiskové sestavy kalibrace

Formátování pomocí stylů

Úvod do problematiky ÚPRAVY TABULKY

Programujeme v softwaru Statistica

Excel tabulkový procesor

DATABÁZE ACCESS Ovládací prvky ve formuláři 5 TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ REPUBLIKY.

MS Excel Filtr automatický, rozšířený

Programujeme v softwaru Statistica

Řazení tabulky, dotazu nebo formuláře

Střední odborná škola stavební Karlovy Vary Sabinovo náměstí 16, Karlovy Vary Autor: Ing. Hana Šmídová Název materiálu:

Transkript:

OSTRAVSKÁ UNIVERZITA P Ř ÍRODOVĚ DECKÁ FAKULTA [ VAWIN ] Vývoj aplikací ve Windows RNDr. Miroslav Liška, CSc.

Ostrava 2002 2 VAWIN.doc

OBSAH 1. Úvod... 5 1.1. Proces vývoje a tvorby aplikací ve Windows... 5 1.2. Přednosti vývojového prostředí založeném na Office... 5 1.3. Vývojové prostředí Excelu... 6 2. Vývoj aplikací v Excelu... 7 2.1. Úvod...7 2.2. Psaní maker... 11 2.3. Konvence pro příkazy a funkce... 11 2.4. Konvence pro názvy... 13 3. Základní pojmy, objektový model VBA... 16 3.1. Základní pojmy... 16 3.2. Malá analogie... 19 3.3. Ještě jeden příklad... 20 3.4. Souhrnně... 20 4. Objektový model Excelu... 21 5. Deklarace a volání procedur... 24 5.1. Příkazy pro deklarace... 24 5.2. Volání procedur... 28 6. Datové typy... 31 6.1. Tabulka datových typů... 31 6.2. Array, Decimal... 32 3 VAWIN.doc

7. Záznam, spouštění a editace maker... 33 7.1. Záznam makra... 34 7.2. Spuštění makra... 38 8. Visual Basic v Excelu... 46 8.1. Okno Visual Basicu... 46 8.2. Vlastní funkce v Excelu... 48 8.3. Subroutine -podprogram... 52 9. Ovládací prvky, formuláře... 54 9.1. Panel nástrojů Formuláře - Posuvník... 54 9.2. Tlumené kmity... 54 10. Uživatelské rozhraní... 61 10.1. Vytvoření aplikace AHOJ... 61 11. Programování webových aplikací... 71 11.1. Základní pojmy objektové struktury VB Scriptu... 71 11.2. HTML dokument AHOJ... 71 SEZNAM OBRÁZKŮ... 81... 83 4 VAWIN.doc

1. Úvod 1.1. Proces vývoje a tvorby aplikací ve Windows Produkty Office a Visual Basic nabízejí sadu nástrojů pro vývoj a tvorbu aplikací ve Windows. Windows = OS MS Windows v. 95, 97, 2000, Office = MS Office Visual Basic = VB v.6 Proces vývoje a tvorby ve vývojovém prostředí aplikací se zjednodušuje takovým způsobem, že se jedná více méně o proces sestavování aplikací Vývojové prostředí Office poskytuje širokou paletu komponent, které mohou vývojáři snadno, pohodlně a také rychle integrovat či přidat do vytvářených aplikací. 1.2. Přednosti vývojového prostředí založeném na Office Vývojové nástroje založené na Office podporují vývoj podle aktuálních potřeb. Zejména zvyšují produktivitu při automatizaci činností v rámci stávajících nástrojů, jimiž jsou: MS Word MS Excel MS Access MS PowerPoint Aplikace vytvořené pomocí vývojových nástrojů založených na Office se snadno používají. Protože takové aplikace jsou postaveny na využití obecně známých softwarových instrumentů, mohou být zavedeny do širokého používání bez nákladného výcviku a další podpory. Vytvoření aplikací, využívající nástroje založené na Office je rovněž méně nákladné. 5 VAWIN.doc

Profesionální praxe vývoje informačních systémů představuje neustálý cyklus - proces stálého zdokonalování vyvíjeného softwaru. Vývojové nástroje založené na Office, které nevyžadují tak velké počáteční investice, jako nový, od počátku vyvíjený program, tento cyklus zjemňují a zlevňují a umožňují rychlou adaptaci na změny technologických trendů a další výhody. Vývojové prostředí založené na Office zvyšuje pracovní pružnost. Práce se nepřetržitě mění a stejně tak i vývojové nástroje založené na Office. Tyto nástroje lze snadno upgradovat. 1.3. Vývojové prostředí Excelu Vývojové prostředí Excelu obsahuje všechny vývojové vlastnosti a je odvozeno z vývojového prostředí Office. Vzhledem k praktickému zaměření této studijní opory budeme další výklad problematiky vývoje aplikací ve Windows orientovat na Excel s tím, že všechny aspekty vývoje aplikací ve Windows v kontextu ostatních nástrojů tj. Wordu, Accesu, PowerPointu, jsou analogické, formálně ekvivalentní a technicky téměř kompatibilní. 6 VAWIN.doc

2. Vývoj aplikací v Excelu Pro vývoj a tvorbu aplikací slouží v Excelu programovací jazyk Visual Basic for Applications. Visual Basic není a nebude lokalizován. Při výkladu se pro argumenty a parametry používají české ekvivalenty. Jsou-li však potřeba v zápisu, ponechávají se anglické termíny. Klíčová slova jsou samozřejmě ponechána v angličtině Pro potřeby této studijní opory neuvádíme všechny příkazy, ale jen často používané. Příkazy budou vysvětlovány zkráceně při snaze o zachycení podstatných rysů pro jejich využití. Mnohé příkazy nemusíme znát, získáme je snadno záznamem makra a jeho dodatečnou úpravou (viz. lekce 7). 2.1. Úvod Budeme pracovat ve Visual Basicu for Applications pro Excel. Pro tento programovací jazyk je používána zkratka VBA Nejprve některé pojmy, které pro přehlednost uvádí následující tabulka 2-1. tabulka 2-1 Program zápis algoritmu v programovacím jazyku pro splnění dané úlohy (ještě jednodušeji: program ve významu z oblasti počítačů) 7 VAWIN.doc

Application, application program aplikace, aplikační (uživatelský) program; program - zpravidla však kolekce programů zaměřených na plnění komplexní úlohy 8 VAWIN.doc

tabulka 2-1 pokračování Macro, makro Procedure, procedura podprogram Subroutine, podprogram posloupnost příkazů k automatizaci nějaké úlohy; slouží k tvorbě krátkých úloh až celých aplikací; makra běží v pracovním prostředí aplikace, ve které bylo vytvořeno; makro může být vytvořeno v Excelu (Wordu, Powerpointu, Accessu); makra se zapisují v programovacím jazyce Visual Basic for Application proceduru budeme nahrávat, psát a zabývat se jí; jde o nejmenší ucelenou logickou jednotku část programu, která je využívána vícekrát, na různých místech v programu; je zapsaná jen jednou a potom se na ni odkazujeme voláním Instruction, instrukce Function, funkce příkaz, programový řádek, povel; též programový kód pojmenovaná část programu, která může být volána z jiných částí programu; při jejím volání i při ukončení se předávají vstupní a výstupní hodnoty parametrů Project, projekt hierarchicky uspořádaný soubor těchto komponent: Microsoft Excel Objekty (Microsoft Excel Objects) - listy sešitu složka formulářů (Forms) - dialogových oken složka modulů (Modules) - programových kódů složka třídy modulů (Class Modules) každý sešit Excelu je samostatným projektem (ve Wordu je projektem každý dokument a v PowerPointu každá prezentace) 9 VAWIN.doc

tabulka 2-1 pokračování Module, modul soubor deklarací datových proměnných a procedur;. v jazyku VBA zapsaný algoritmus řešení úlohy; obsahuje makra (projekt ve Wordu a v PowerPointu má také moduly, jak jinak)] Class module, třída modulů Form, formulář modul obsahující definice tříd zahrnujících vlastnosti a metody třídy spojují do jedné jednotky data a procedury dialogové okno, rámeček s doplněnými ovládacími prvky a procedurami na pozadí 10 VAWIN.doc

2.2. Psaní maker Při psaní maker, procedur se používají: datové typy (data type), příkazy (statement), objekty (object), kolekce objektů (collection object), metody (method), vlastnosti (property), funkce (function) a události (event). Lze je rozdělit do dvou skupin: na ty, které jsou společné všem aplikacím a jsou dané jazykem Visual Basic a na ty, které má konkrétní aplikace - v našem případě v Excelu. Ve Wordu i v PowerPointu budou jiné. Objekty, metody a vlastnosti Excelu jsou dány tím, že jde o tabulkový procesor. Máme zde sešit, list... 2.3. Konvence pro příkazy a funkce V kulatých závorkách jsou u funkcí argumenty. Jsou-li uvedeny v hranatých závorkách, nemusí se uvádět Např: funkce, která vrací pořadový den v týdnu Weekday (datum, [první_den]) U této funkce musíme zadat datum. Za neuvedený argument první_den se dosadí implicitní hodnota. Analogická situace je u příkazů. Ty mají v závorkách parametry. Části příkazu v hranatých závorkách se nemusí zadávat. U metod jsou parametry uvedeny jen v závorce. Zde se rozlišení zápisem nedělá. Volitelnost je uvedena v popisu parametru. U nich je totiž možné parametry zapsat pozicí, za chybějící argumenty jsou čárky nebo je argument uveden klíčovým slovem a za ním je přiřazení hodnoty. Přiřazení se zapisuje: 11 VAWIN.doc

= Např. Workbooks.Open FileName = "ABC.xIs", Password:="abc" 12 VAWIN.doc

Svislá čára vyjadřuje volbu. Musí být uveden jeden z argumentů. Např. Len (řetězec proměnná) zjištění délky textu nebo velikost proměnnou obsazené paměti. Pro oddělení variantní volby od ostatní části příkazu se používají složené závorky. Např. Do [ { While I Until } podmínka ]. Příkaz, funkci lze rozdělit na více řádků podtržítkem. Jde-li o rozdělení textu, např. u funkce pro výpis zpráv MsgBox, musíme na konci řádku dát & (nebo +), za ním mezeru a podtržítko. Text musí končit a začínat uvozovkami. U zpráv by se měl použít operátor & (tj. zřetězení). Operátor + je méně vhodný. Příklad na rozdělení příkazu Workbooks.Open Filename:="VAWIN.xls", _ Password:="vawin", ReadOnly:=True 2.4. Konvence pro názvy 2-4-1 Názvy mus í Názvy (jména) procedur, funkcí, proměnných, konstant, ovládacích prvků, modulů, : musí:začínat písmenem, musí to být jedno slovo (spojení dosáhneme podtržítkem) Název nemůže začít číslem nebo podtržítkem. 13 VAWIN.doc

2-4-2 Názvy nesm í obsahovat tečky a dále @, #, &, závorky (všech druhů), /, \, operátory, přesahovat 255 znaků, názvy ovládacích prvků, modulů, tříd, formulářů přesáhnout 40 znaků, se shodovat s klíčovými slovy jazyka (být názvem prvku univerza jazyka VBA). U názvů ovládacích prvků nejsou požadavky tak striktní, ale dodržením výše uvedených si nezpůsobíme nečekané problémy. 2-4-3 Navrhován í a používání názvů Vymýšlet názvy není jednoduchá záležitost: Název by měl být krátký Mnemotechnický - měl by mít vypovídací schopnost i po čase. Měl by umožnit rychlou orientaci. Některá doporučení: Spojovat do jednoho slova význam proměnné. Vzhledem k tomu, že se v zápisu respektují velká písmena mohou sloužit k oddělení slov: PocetKs, DatumPlatby Můžeme použít písmena s diakritikou, ale raději se jim vyhneme. U proměnných je vhodné začít datovým typem, zvláště tam, kde můžeme být o použitém typu na pochybách. Např. intpocetks (počet kusů Integer), strdatumplatby (datum jako řetězec - String). Názvy začít písmenem, za ním podtržítko a vlastní název. Takto napsané názvy se snadno vyhledávají. Např. všechny procedury zapsané v prvním modulu budou začínat Ml_, ve druhém M2_. U proměnných začneme písmenem X_ pro proměnné rozsahu působnosti Public, P_ pro Private a A_ pro Dim (Local). Např. X_PocetKs. Doplňovat komentáře 2-4-4 Automatiza ce názvů Visual Basic za nás hlídá pojmenování proměnných a napíšeme-li ho na jiném místě odlišně, velká písmena se automaticky upraví podle deklarace proměnné. Napíšeme-li např. Dim PocetKs As Integer a někde jinde jen pocetks, název se automaticky změní na PocetKs. Změníme-li velká písmena v deklaraci dodatečně, ve všech případech se zápis též změní. Změ ní se jen velikost písmen, ne název Visual Basic umožňuje velice volný zápis názvu proměnných a subrutin. Pro snadnou čitelnost 14 VAWIN.doc

programů je vhodné zavést určitá pravidla. Začít písmenem X je vhodné proto, že tak začíná málo klíčových slov.. 15 VAWIN.doc

3. Základní pojmy, objektový model VBA 3.1. Základní pojmy Seznámíme se základními pojmy VBA v Excelu: 3-1-1 Objekt (obj ect) Objektem v Excelu je např. sešit, list, buňka, graf... Každý objekt má metody a vlastnosti. Každé metodě a vlastnosti předchází (po jeho levé straně) zapsaný objekt, kterého se týkají. Na objekt odkazujeme buď v rámci kolekce (indexem nebo jménem) nebo objektu předchází slovo Active a bezprostředně název objektu. Např. Workbook, ActiveWorkbook, Worksheets(2), Worksheets("List2"), ActiveSheet. Pro Range ("Al:B5") je ActiveCell, aktivní buňka nebo Selection jako označení pro libovolný předchozí výběr buněk, listů. Pro Range není ActiveRange. 3-1-2 Metoda (Me thod) Vyjadřuje akci, kterou lze s objektem dělat. Metody jsou popsány slovesy, např. otevřít, zavřít, přidat, odstranit. Metodě musí předcházet objekt, se kterým se má akce provést. Např. příkaz: Worksheets("List2").Delete povede k odstranění listu List2, k přidání listu příkaz 16 VAWIN.doc

ActiveWorkbook.Sheets.Add. 17 VAWIN.doc

3-1-3 Vlastnost (P roperty) Popisuje objekty, obyčejně nabývá nějakých hodnot. Např. jméno velikost, barva, hodnota... Vlastnosti jsou vyjádřeny podstatnými a přídavnými jmény. Můžeme je zjistit nebo nastavit: Např. příkaz MsgBox Worksheets(2).Name zobrazí název listu a příkazem Worksheets(2).Name = "Pokus" se tento list přejmenuje na Pokus. Nebo jiný příklad: MsgBox Range( "A1" ).Font.Bold = True = zpráva, zda je písmo tučné. Dále Range("A1").Font.Bold = True = nastavení tučného písma. 3-1-4 Kolekce (C ollection Object) Je množina objektů stejné třídy. Má na konci vždy písmeno s (množné číslo). Také kolekce mají vlastnosti a metody, ale je jich méně než u objektů. Slouží pro práci s celými množinami nebo jednotlivými prvky kolekce. Na prvky kolekce můžeme odkazovat indexem (pořadovým číslem v kolekci) nebo jménem prvku. Např.: Když se 2.list jmenuje List2, potom zápis Worksheets (2) 18 VAWIN.doc

je ekvivalentní zápisu Worksheets ( "List2" ) Jde o druhý list z kolekce listů. 3.2. Malá analogie Knihovna je kolekce objektů - knih. Je v ní na určitém místě (třeba na 2, to je pořadový index) tato kniha. Tedy zápis je tato kniha. Knihovna (2) Objekt kniha má vlastnosti jméno, velikost, počet Jistů. Tedy Knihovna(2).Name vrátí název této knihy. Metodou je potom to, že ji otevřeme. Přeneseme se do sešitu Excelu. Sešit je objekt Workbook, obsahuje kolekci listů Worksheets. Budeme aktivovat list s indexem 2 a zobrazíme jméno tohoto listu: ActiveWorkbooks.Worksheets(2).Activate MsgBox ActiveSheet.Name V programu musíme vždy určit objekt, se kterým budeme pracovat. Font je objektem vůči Bold, Italic, Color, Size Příklad zápisu: Worksheets ("List1").Range("A1:B3").Font.Bold = True Oblast buněk bude zformátována na tučné písmo. Dále font je vlastností vůči oblasti, která je objektem: Worksheets ("List1").Range("A1").Font.Bold = True Jde, jak vidíme, o směr pohledu. Objekt je vždy vlevo. Mnohdy je vhodné číst příkazy zprava doleva, lépe tak příkazům porozumíme. 19 VAWIN.doc

3.3. Ještě jeden příklad Abychom neměli dojem, že jde o zužování oblasti. Worksheet(list) je ve funkci objektu jak vůči vlastnostem: např. Name, PageSetup, Visible, tak vůči metodám: Activate, Calculate, Delete, Protect, Unprotect,... a může být vlastností vůči objektu Range. MsgBox Range("A1").WorkSheet.Name Worksheet je součástí kolekce Worksheets. V kolekci lze adresovat list, a ten může mít vlastnost: např. Visible (být zobrazený). Do kolekce lze metodou Add přidat další list před aktivní list: Worksheets("List1").Visible = True ActiveWorkbook.Worksheets.Add Before:=Worksheets(3) 3.4. Souhrnně V Excelu je orientačně 153 objektů, z toho 44 kolekcí objektů. Některé objekty mohou vystupovat jako objekt i jako vlastnost, např. Font, Worksheet. Pro úplnost uvedeme orientační čísla vyjadřující mohutnost vývojového prostředí VBA. Metod (Methods je 432, vlastností (Property) 9ó9, funkcí (Function) 150, událostí {Event) 54, příkazů (Statement) 77 a operátorů (Operator) 19. 20 VAWIN.doc

4. Objektový model Excelu Pro rychlou orientaci si uvedeme základní kolekce, objekty a jim přiřazené metody a vlastnosti. Většinou je metod a vlastností mnohem více, zde jsou jen základní. Zapíšeme-li název objektu, tak se po zápisu tečky Visual Basic nabídne pokračování Pro pokračování můžeme též zadat příkaz EDIT/LIST/PROPERTIES/METHODS, stejnojmenný příkaz v místní nabídce nebo stisknout klávesovou zkratku Ctrl J(viz. obrázek 4-1). obrázek 4-1 21 VAWIN.doc

tabulka 4-1 Kolekce Objekt Metoda Vlastnost Workbooks Add, Close, Open Application, Count Worksheets Workbook Activate, Close,, PrintOut, PrintPreview, Protect, RunAutoMacros, Save, SaveAs, SaveCopyAs, Unprotect Worksheet Add, Copy, Delete, Move, PrintOut, PrintPreview, Select Activate, Calculate, Copy, Delete, Move, Paste, PasteSpecial, PivotTables,, PrintOut, PrintPreview, Protect, SaveAs, Select, Unprotect - Range Activate, AutoFilter,, AutoFit, AutoFormat, BorderAround, Calculate, Clear, ClearContents, ClearFormats, Copy, Cut,, Delete, Insert, Justify, PasteSpecial, PrintOut, PrintPreview, Select, Show, Sort Application, FullName, Name, Path, ReadOnly, Sheets, Windows Application, Count, Visible Application, Cells, Columns, Index, Name, Next, PageSetup, Previous, Range, Rows, Visible Address, Application, Borders, Cells, Column, Columns, Count, CurrentRegion, Font, Formula, FormulaArray, FormulaR1Cl, Height, Hidden, Interior, Locked, Name, NumberFormat, Offset, Orientation PageBreak, PivotTable, Row, Rows, Value, Value2, Width, Worksheet Charts (pouze listy) Add, Copy, Delete, Move, PrintOut, PrintPreview, Select Application, Count, Visible 22 VAWIN.doc

- Chart (vložené, list) Activate, Copy, Delete, Move, Paste, PrintOut, PrintPreview, Protect,.Refresh, Select, Unprotect Application Calculate, Goto, Help, InputBox, OnKey, Quit, Run, SaveWorkspace, Wait Application, ChartType Index, Name, PaáeSetup Visible ActiveCell, ActiveChart, ActiveSheet, ActiveWindow, ActiveWorkbook, CalculateBeforeSave, Calculation, EnableEvents RecentFile, Version, Windows, Workbooks, Worksheets Windows Arrange Application, Count Window Activate, ActivateNext, ActivatePrevious, Close, NewWindow, PrintOut, PrintPreview ActiveCell, ActiveSheet Application, DisplayGridlines, DisplayZeros, OnWindow, Selection, View, Visible, WindowNumber, Zoom 23 VAWIN.doc

5. Deklarace a volání procedur 5.1. Příkazy pro deklarace Deklarační příkazy slouží pro vytvoření procedur, funkcí a proměnných datových typů. 5-1-1 Deklarace pr ocedury Procedury a funkce použijeme pro rozdělení větší úlohy do menších logických částí. Procedury se dají v úloze použít pro tvorbu opakovaných nebo sdílených částí. [Private I Public I Friend] [Static] Sub název [(argumenty)] [příkazy] [Exit Sub] [příkazy] End Sub Public Procedura je dostupná ve všech procedurách, ve všech modulech. Je-li v modulu požit příkaz Option Private, potom procedura není dostupná mimo projekt. Private Procedura je dostupná pouze v ostatních procedurách modulu, kde je deklarovaná. Friend Procedura je dostupná pouze ve třídě modulů, Procedura je viditelná v projektu, ale není viditelná pro řízení objektů Static Určuje, že místní proměnné v proceduře jsou uchovány ve volání. Proměnné deklarované mimo proceduru nelze v proceduře použít. název Název (jméno) procedury argumenty Proměnné předávané mezi procedurami při volání. Argumenty jsou odděleny čárkou. příkazy Příkazové řádky plněné v proceduře. Exit Sub Ukončení procedury. Běh pokračuje za příkazem, kterým se procedura volala. End Sub Ukončovací příkaz. 24 VAWIN.doc

VAWIN.doc 25

Argumenty mohou mít následující části nejsou povinné: [Optional] [By VaI I By Ref] [ParamArray] proměnná [()] _ [As typ] [=default_hodnota] Optional By Val By Ref Param Array proměnná typ default hodnota Indikuje, že další argumenty musí být deklarované též jako Optional. Nemůže být použito s ParamArray. Indikuje že argument je volán hodnotou. Indikuje, že argument je volán odkazem. Definuje pole předem neznámého počtu parametrů Variant. název proměnné datový typ přiřazená konstanta 5-1-2 Deklarace f unkce. [Public] [Private] [Friend] [Static] Function název _ [(argumenty)] [As typ] [příkazy] [název = výraz] [Exit Sub] [název = výraz] End Function Povinné části jsou pouze dvě: Function a název. Význam jednotlivých částí je analogický jako u procedury - Sub. Aby mohla být volající proceduře předána hodnota funkce, musí být v těle funkce příkaz název = výraz, kterým se identifikátoru funkce přiřazuje hodnota výrazu. As type definuje návratový datový typ funkce. Implicitně je Variant 26 VAWIN.doc

VAWIN.doc 27

5-1-3 Deklarace p roměnných Další příkazy slouží pro deklaraci proměnných a k alokaci paměti. Dim název As datový_typ Proměnná deklarovaná na úrovni procedury nebo modulu. Deklarovaná na úrovni modulu je dostupná všem procedurám modulu. Deklarovaná na úrovni procedury je dostupná pouze uvnitř procedury. Dim se však nejčastěji deklaruje na úrovni procedury. Na úroveň modulu se používá příkaz Private. Private název As datový_typ Proměnná deklarovaná na úrovni modulu. Proměnná je dostupná ve všeeh proeedurách modulu. Nelze deklarovat v proceduře. Public název As datový_typ Proměnná deklarovaná jako veřejná. Proměnná bude dostupná všem procedurám, všem modulům a ve všech projektech. Deklarace proměnných na úrovni modulu a veřejné musí být na začátku modulu, před procedurami, v tzv. deklarační sekci modulu. Ta je oddělena vodorovnou čarou od procedur. Nelze je umístit jinde. Na pořadí typu deklarace nezáleží. Dim může být v proceduře nebo na začátku modulu. 5.2. Volání procedur. [Call] název [seznam argumentů] Předání řízení jiné proceduře (Sub), funkční proceduře (Function) nebo dynamické knihovně. Po návratu se pokračuje (předá se řízení příkazem na řádku bezprostředně následujícím za příkazem volání. 28 VAWIN.doc

Call klíčové slovo, které není povinné. Když se použije, musí byt uveden seznam argumentů, i nulový. název jméno volané procedury Forma volání s Call je archaická. Běžně se procedury volají jen názvem bez Call. seznam argumentů - předávané hodnoty argumentů. Argumenty jsou odděleny čárkou a neuvádí se do závorek (při prosté volbě bez Call). U funkce je seznam parametrů uzavřen v kulatých závorkách a parametry jsou odděleny čárkou. Příklad: Sub M_Procedura Call M_procedura1 ( V1, V2) nebo M_procedura2 V3, V4 nebo M_Procedura3 VB_Funkce (A, B, C) End Sub. Function VB_Funkce (A, B, C) End Function 29 VAWIN.doc

VAWIN.doc 30

6. Datové typy 6.1. Tabulka datových typů tabulka 6-1 Datový typ Uloženo v Byte Rozsah Byte 1 0 až 255 4 Boolean 2 True, False Integer 2-32 768 až 32 767 Long (long integer) 4-2 147 483 648 až 2 147 483 647 Single (jednoduchá přesnost, plovoucí desetinná čárka) Double (dvojitá přesnost, plovoucí desetinná. čárka) 4-3,402823 * 10 38 až 3,402823 * 10 38 8-1,79769313486231 * 10 308 až 1,79769313486232 * 10 308 Currency 8 922 337 203 685 477,5808 až 922 337 203 685 477,5807 Decimal 14 orientačně: ± 7,9 * 10 28 bez des. míst ± 7,9 * 10-28 s des. místy a nejmenší nenulové číslo ± 1 * 10-28 Date 8 1.1.100 až 31.12.9999 Object 4 String,(proměnné délky) String (pevné délky) 10 + počet znaků řetězce počet znaků řetězce 0 až 2 * 10 9 1 až 65 400 Variant (čísla) 16 Stejné jako Double Variant (znaky) User defined (uživatelem definovaný) 22 + počet znaků řetězce počet podle prvků Stejné jako String Podle datových typů prvků 31 VAWIN.doc

6.2. Array, Decimal Array (oblast) vyžaduje: 20 bajtů, plus 4 bajty pro každý rozměr plus počet bajtů.podle datového typu pro každý prvek oblasti. Datový typ Decimal může být použit pouze v datovém typu Variant. Nemůže být deklaován samostatně, např. pomocí Dim. Lze na něj převést číslo pouze konverzní funkce CDec. Např. Dim X_NadejeVyhry X_NadejeVyhry = CDec (Pocet1 * Pocet2) t Je-li proměnná deklarována bez udání datového typu, je implicitně typu Variant. A podle nabyté hodnoty potom nabývá typu Variant/String nebo Variant/Double, případně Variant/Integer (pro celé číslo). Není-li proměnná deklarována, nabývá implicitně typ Variant. 32 VAWIN.doc

7. Záznam, spouštění a editace maker Ukážeme si jak lze vytvořit makro v záznamovém režimu. Příklad: Chceme automatizovat soubor činností, jimiž na listu Excelu změníme formát buňky s textovou hodnotou. Za takovým účelem vytvoříme ve Windows aplikaci. Tvorbu takové aplikace představují ve vývojovém prostředí Office a VBA především dvě základní metody: záznam (nahrávání) makra, spouštění makra. Dodatečně také můžeme makro upravovat (editovat), buď jednoduše (změnou některých hodnot) nebo složitěji (manuálním kódóváním - např. doplňováním o programové struktury pro rozhodování nebo opakování činnostní cykly). 33 VAWIN.doc

7.1. Záznam makra Nejdříve aktivujeme Panel nástrojů VISUAL BASIC ( 34 VAWIN.doc

obrázek 7-1). Ještě než zahájíme záznam makra pro konkrétní posloupnost činností souvisejících se změnou formátu buňky s textovou hodnotou, musíme vybrat buňku A1. Zapíšeme do ní pracovní hodnotu a zapneme tlačítko. Definujeme Název makra - nazveme ho Písmo (obrázek 7-2). Stiskneme tlačítko OK. Od tohoto momentu se všechny činnosti budou zaznamenávat a současně převádět do programovacího kódu VB. Provádíme změny: typu písma (name) řezu (style) velikosti (size), barvy (color) a změnu barvy vzorku (pattern) buňky. Obdržíme výsledný formát. Záznam makra nyní ukončíme ( 35 VAWIN.doc

obrázek 7-3). Jak vypadá vygenerovaný programový kód VB makra Písmo? Prozatím se ještě vyhneme Editoru jazyka VB, tj.. Přímá cesta vede přes nabídky NÁSTROJE/MAKRO/MAKRA (obrázek 7-4). Po stisknutí tlačítka Upravit (obrázek 7-5) vidíme celou programovou strukturu ve tvaru podprogramu Písmo (obrázek 7-6): 36 VAWIN.doc

Sub Písmo() With Selection.Font.Name = "Times New Roman".FontStyle = "tučné kurzíva".size = 16.ColorIndex = 3 End With With Selection.Interior.ColorIndex = 6.Pattern = xlsolid.patterncolorindex = xlautomatic End With End Sub Z příkazů lze vyčíst, jak vygenerovaný kód podprogramu nastavuje pro potřeby naší aplikace požadované vlastnosti Font a Interior vybraného objektu (selection), kterým je v našem případě buňka listu Excelu. 37 VAWIN.doc

7.2. Spuštění makra Jestliže vybereme buňku A3 s hodnotou Q, potom jednoduchý způsob jak spustit makro získáme v nabídkovém sledu NÁSTROJE/MAKRO/MAKRA pomocí tlačítka Spustit (srov. obrázek 7-4) (kratčeji Alt F8). Elegantnější způsob spuštění makra představuje vložení tlačítka na list tabulky Excelu.: Aktivujeme Panel nástrojů FORMULÁŘE. Zvolíme formulářový prvek, který představuje tlačítko (obrázek 7-9). Vykreslíme na listu Excelu obdélník tlačítka, kterému systém přiřadí pojmenování tlačítko 1, které změníme na Písmo. Pravým kliknutím na objekt toho tlačítka vyvoláme kontextuální nabídku, kde zvolíme možnost Přiřadit makro ( 38 VAWIN.doc

obrázek 7-11). Od tohoto okamžiku je tlačítko funkční a podle potřeby mění formát vybrané buňky. Finální aplikaci představuje tlačítko Písmo na listu Excelu, výsledek vidíme (obrázek 7-12). 39 VAWIN.doc

obrázek 7-1 obrázek 7-2 40 VAWIN.doc

obrázek 7-3 obrázek 7-4 obrázek 7-5 41 VAWIN.doc

obrázek 7-6 obrázek 7-7 42 VAWIN.doc

obrázek 7-8 43 VAWIN.doc

obrázek 7-9 obrázek 7-10 44 VAWIN.doc

obrázek 7-11 obrázek 7-12 45 VAWIN.doc

8. Visual Basic v Excelu 8.1. Okno Visual Basicu Okno Visual Basicu otevřeme klepnutím na příkaz Editor jazyka Visual Basic z nabídkového sledu NÁSTROJE/MAKRO nebo ještě kratčeji klávesovou zkratkou Alt F11: ( obrázek 8-1) nebo aktivujeme panel nástrojů Visual Basic a stiskneme tlačítko Editor jazyka Visual Basic (obrázek 8-2) obrázek 8-1 obrázek 8-2 46

obrázek 8-3 47

8.2. Vlastní funkce v Excelu V Excelu je velmi užitečné definovat vlastní funkce, které potom můžeme zadávat tlačítkem (obrázek 8-4) obrázek 8-4 Příklad FUNKCE1: Vytvoříme triviální funkci pro součet dvou hodnot f1( x1, x2) = x1+ x2 Vložíme modul (obrázek 8-5), do kterého zapíšeme příkazy (obrázek 8-6) Function Funkce1(Hodnota1,Hodnota2) Funkce1 = Hodnota1 + Hodnota2 End Function Funkci pak vložíme (obrázek 8-7) podle průvodce zadáme výpočet pro buňky A1 a A2 výsledek před stisknutím OK vidíme (obrázek 8-8). 48

obrázek 8-5 obrázek 8-6 49

obrázek 8-7 50

obrázek 8-8 51

8.3. Subroutine -podprogram Příklad: Sub VAWin () obrázek 8-9 52

obrázek 8-10 obrázek 8-11 53

9. Ovládací prvky, formuláře V této lekci si ukážeme možnosti aplikace ovládacích prvků v Excelu. 9.1. Panel nástrojů Formuláře - Posuvník Pomocí Panelu nástrojů Formuláře list Excelu různé ovládací prvky. můžeme vložit na Jmenovitě to jsou např.: Popisek Textové pole Skupinový rámeček Tlačítko Zaškrtávací políčko 9.2. Tlumené kmity Na příkladu jednoduchého matematického modelu tlumených kmitů, který můžeme vyjádřit ax funkcí f( x) = sin( kx). e, 0 x 2π, si předvedeme využití ovládacího prvku Posuvník. Za účelem sledování chování této funkce, tj., změny jejího průběhu naší funkce měníme hodnoty parametrů k, a. Nejdříve sestavíme tabulku hodnot této funkce a vykreslíme její graf (viz obrázek 9-1) Hodnoty parametrů k, a jsou v buňkách D2, E2. Ve sloupci A je index, ve sloupci B hodnoty x i, hodnoty funkce f(x i ) se počítají ve sloupci C podle vzorce =SIN(D$2*B7)*EXP(-E$2*B7) (pro i = 6, resp. pro řádek 7). 54

Nyní aktivujeme panel nástrojů Formuláře a zvolíme Posuvník (obrázek 9-2).Vykreslíme dva posuvníky pro oba parametry k, a ( 55

obrázek 9-3). V okénku Formát ovládacího prvku, které zobrazíme pravým kliknutím na posuvník pro k, specifikujeme hodnoty vlastností pro posuvník parametru k. Vedle zadání např. minimální, maximální hodnoty generované posuvníkem je nejdůležitější definovat Propojení s buňkou, V našem případě zadáváme propojení na buňku D2 pro parametr k. Analogicky postupujeme pro parametr a, kde zadáváme propojení na buňku E2. Výsledek (pro hodnoty k = 8, a = 2 ) ukazuje ( 56

obrázek 9-4). Úloha k zamyšlení: Promyslete možnosti aplikace s ovládacím prvkem Zaškrtávací políčko. Pozn.: Podle stavu zaškrtnutí je tímto prvkem generována do propojené buňky logická hodnota: PRAVDA, NEPRAVDA. 57

obrázek 9-1 obrázek 9-2 58

obrázek 9-3 59

obrázek 9-4 60

10. Uživatelské rozhraní Ukážeme si, jak můžeme snadno vytvořit v Excelu jednoduchou formulářovou aplikaci Neboli vytvoříme jednoduchou aplikaci uživatelského rozhraní. Bude to kratičký program, který demonstruje tu nejjednodušší věc, jaká se ve Visual Basicu dá napsat, sestavit a spustit. Uvidíme, že ve Visual Basicu je vývoj takové aplikace velmi snadný obrázek 10-1 10.1. Vytvoření aplikace AHOJ Vytvoříme triviální aplikaci AHOJ. Celé uživatelské rozhraní můžeme vytvořit pomocí dvou objektů. Dále stačí definovat hodnoty dvou vlastností a napsat jeden příkaz., Nejprve vytvoříme nový formulář ( 61

obrázek 10-2 Potom zvolíme dva ovládací prvky soupravy nástrojů Toolbox: TextBox ( 62

obrázek 10-2) a příkazové tlačítko CommandButton (obrázek 10-3) nebo tlačítkem Panelu nástrojů. Objekt typu příkazové tlačítko. Klepneme na příkazové tlačítko čili vyvoláme událost, která se musí následně zpracovat Typickými příkazovým tlačítkem může být OK jako souhlasné potvrzení s určitým dalším postupem v aplikaci, dále tlačítko Cancel, které slouží ke zrušení akce Pomocí okna Properties nadefinujeme u textového pole prázdnou hodnotu a pro příkazové tlačítko CommandButton1 definujeme Caption = OK 63

Ve Visual Basicu mohou být všechny formuláře dané aplikace viditelné současně, nebo je můžeme zavádět a odstraňovat podle potřeby. Po odstartování se zobrazí formulář UserForm1. Po kliknutí na příkazové tlačítko OK se provede příkaz podle programu Private Sub CommandButton1_Click() TextBox1.Text = "AHOJ" End Sub v textovém polí se zobrazí AHOJ (obrázek 10-12) Programový kód tedy po kliknutí na tlačítko OK změnil vlastnost Text textového pole TextBox1 na text AHOJ a uvedený text zobrazil v textovém poli. Kliknutím na Zavřít aplikaci ukončíme. obrázek 10-1 64

obrázek 10-2 obrázek 10-3 65

obrázek 10-4 obrázek 10-5 obrázek 10-6 66

obrázek 10-7 obrázek 10-8 obrázek 10-9 67

obrázek 10-10 obrázek 10-11 obrázek 10-12 68

obrázek 10-13 obrázek 10-14 69

obrázek 10-15 obrázek 10-16 obrázek 10-17 70

11. Programování webových aplikací 11.1. Základní pojmy objektové struktury VB Scriptu V této kapitole se seznámíme se základními pojmy objektové struktury VB Scriptu Jednoduchost přechodu si ukážeme na příkladu, jak umístit na webovou stránku tlačítko a vyvolat zprávu AHOJ pomocí známého příkazu MsgBox Předpokládáme jen elementární znalosti HTML. 11.2. HTML dokument AHOJ 11-2-1 Vytvoření H TML dokumentu AHOJ Abychom mohli začít, potřebujeme elementární HTML dokument. Připravíme si ho jako textový dokument utilitou Poznámkový blok, který ( 71

obrázek 11-1). Napíšeme základní programový kód v HTML (obrázek 11-2) a uložíme tento textový dokument jako AHOJ.HTM. 11-2-2 Otevření HT ML dokumentu AHOJ Nyní si tento soubor najdeme Průzkumíkem a otevřeme ho. Jelikož soubor AHOJ s příponou htm je nyní ve Windows akceptován jako HTML dokument ( 72

obrázek 11-3) bude teď otevřen přímo v Exploreru (obrázek 11-4). 11-2-3 Editace HT ML dokumentu AHOJ VB Script Teď budeme používat k editování našeho dokumentu Poznámkový blok jako základní editor Exploreru. Po akci ZOBRAZIT/ZDROJOVÝ KÓD (viz. obrázek 11-6) dopíšeme AHOJ 1 <script language = "VBScript"> MsgBox "AHOJ 2" </script> <BR> AHOJ 3 73

Vidíme (obrázek 11-7) a po kliknutí na tlačítko OK se dostáváme do situace (obrázek 11-8), kdy postupně na webové stránce se zobrazí 74

AHOJ 1 [AHOJ 2] dynamické zobrazení!!! AHOJ 3 11-2-4 Vložení tlač ítka Zapíšeme další kód <html> <head> <title>ahoj</title> <script language = "VBScript"> Sub Tlacitko1_Click() Tlacitko1.Caption= "AHOJ 4" MsgBox "AHOJ 5" End Sub </script> </head> <body> AHOJ 1 <BR> <script language = "VBScript"> MsgBox "AHOJ 2" </script> AHOJ 2 <BR> AHOJ 3 <BR> <object classid = "clsid:d7053240-ce69-11cd-a777-00dd01143c57" id="tlacitko1" width="96" height="32"> <param name="caption" value="klikni"> 75

vypadá </object> </body> </html> 76

obrázek 11-1 obrázek 11-2 77

obrázek 11-3 obrázek 11-4 78

obrázek 11-5 obrázek 11-6 79

obrázek 11-7 obrázek 11-8 80

obrázek 11-9 obrázek 11-10 SEZNAM OBRÁZKŮ obrázek 4-1... 21 obrázek 7-1... 40 obrázek 7-2... 40 obrázek 7-3... 41 obrázek 7-4... 41 81

obrázek 7-5... 41 obrázek 7-6... 42 obrázek 7-7... 42 obrázek 7-8... 43 obrázek 7-9... 44 obrázek 7-10... 44 obrázek 7-11... 45 obrázek 7-12... 45 obrázek 8-1... 46 obrázek 8-2... 46 obrázek 8-3... 47 obrázek 8-4... 48 obrázek 8-5... 49 obrázek 8-6... 49 obrázek 8-7... 50 obrázek 8-8... 51 obrázek 8-9... 52 obrázek 8-10... 53 obrázek 8-11... 53 obrázek 9-1... 58 obrázek 9-2... 58 obrázek 9-3... 59 obrázek 9-4... 60 obrázek 10-1... 64 obrázek 10-2... 65 obrázek 10-3... 65 obrázek 10-4... 66 obrázek 10-5... 66 obrázek 10-6... 66 obrázek 10-7... 67 obrázek 10-8... 67 82

obrázek 10-9... 67 obrázek 10-10... 68 obrázek 10-11... 68 obrázek 10-12... 68 obrázek 10-13... 69 obrázek 10-14... 69 obrázek 10-15... 70 obrázek 10-16... 70 obrázek 10-17... 70 obrázek 11-1... 77 obrázek 11-2... 77 obrázek 11-3... 78 obrázek 11-4... 78 obrázek 11-5... 79 obrázek 11-6... 79 obrázek 11-7... 80 obrázek 11-8... 80 obrázek 11-9... 81 obrázek 11-10... 81 83