1 OSTRAVSKÁ UNIVERZITA P Ř ÍRODOVĚ DECKÁ FAKULTA [ VAWIN ] Vývoj aplikací ve Windows RNDr. Miroslav Liška, CSc.2 Ostrava VAWIN.doc3 OBSAH 1. Úvod Proc...
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
zápis algoritmu v programovacím jazyku pro splnění dané úlohy (ještě jednodušeji: program ve významu z oblasti počítačů)
Program
7 VAWIN.doc
aplikace, aplikační (uživatelský) program; program - zpravidla však kolekce programů zaměřených na plnění komplexní úlohy
Application, application program
8 VAWIN.doc
tabulka 2-1 pokračování
Macro, makro
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
Procedure, procedura – podprogram
proceduru budeme nahrávat, psát a zabývat se jí; jde o nejmenší ucelenou logickou jednotku
Subroutine, podprogram
čá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
příkaz, programový řádek, povel; též programový kód
Function, funkce
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ů
modul obsahující definice tříd zahrnujících vlastnosti a metody třídy spojují do jedné jednotky data a procedury
Form, formulář
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
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ý.
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é.
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
Knihovna (2) je tato kniha. 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:
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
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
25 VAWIN.doc
Argumenty mohou mít následující části nejsou povinné:
[Optional] [By VaI I By Ref] [ParamArray] proměnná [()] _ [As typ] [=default_hodnota] Optional
Indikuje, že další argumenty musí být deklarované též jako Optional. Nemůže být použito s ParamArray.
By Val
Indikuje že argument je volán hodnotou.
By Ref
Indikuje, že argument je volán odkazem.
Param Array
Definuje pole předem neznámého počtu parametrů Variant.
proměnná
název proměnné
typ
datový typ
default hodnota
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
27 VAWIN.doc
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
klíčové slovo, které není povinné. Když se použije, musí byt uveden seznam argumentů, i nulový.
Call
Forma volání s Call je archaická. Běžně se procedury volají jen názvem bez Call.
jméno volané procedury
název
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
30 VAWIN.doc
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)
orientačně: ± 7,9 * 1028 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
0 až 2 * 109
počet znaků řetězce
1 až 65 400
Variant (čísla)
16
Stejné jako Double
Variant (znaky)
22 + počet znaků řetězce
Stejné jako String
User defined (uživatelem definovaný)
počet podle prvků 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ů
34 VAWIN.doc
VISUAL BASIC
(
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í
35 VAWIN.doc
ukončíme
(
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 funkcí f ( x) = sin(kx).e − ax , 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 xi , hodnoty funkce f(xi) 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ý
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ář ( obrázek 10-1
61
obrázek 10-2
Potom
zvolíme
dva
ovládací
prvky
soupravy
62
nástrojů
Toolbox:
TextBox
(
obrázek a příkazové tlačítko CommandButton (obrázek 10-3) nebo tlačítkem Panelu nástrojů.
10-2)
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