Programování v Excelu 2000, 2002, 2003

Podobné dokumenty
Ukázka knihy z internetového knihkupectví

Obsah. Obsah. Úvod Makra v Excelu Nahrávání maker První setkání s editorem jazyka Visual Basic... 31

Programování v Excelu 2000, 2002, 2003

Termíny zkoušek Komise Komise. subkomise 1 (obhaj.) :30 B subkomise 2 (obhaj.) :30 B8 120

Excel - záznam, úprava a programování maker

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

Ukazka knihy z internetoveho knihkupectvi

Obsah. Podrobná uživatelská příručka

Návod pro vzdálené p ipojení do sít UP pomocí VPN pro MS Windows 7

informa ní linka: Daisy Perfect M

Seznámení žáků s pojmem makra, možnosti využití, praktické vytvoření makra.

Uživatelská nápověda k systému factinfo.net

Kapitola 1: Co je Delphi 19. Překlad projektu 23

Uživatelská dokumentace

Rozšířená nastavení. Kapitola 4

Tabulka jako pozadí na Ploše

1. PROSTŘEDÍ PROGRAMU. Pás karet se záložkami (na obrázku aktivovaná karta Domů ) Hlavní okno, ve kterém se edituje aktuální snímek prezentace

Manuál uživatele čipové karty s certifikátem

TIP: Pro vložení konce stránky můžete použít klávesovou zkratku CTRL + Enter.

Příloha č. 1. Specifikace jednotlivých e-learningových výukových kurzů:

Obsah. Obsah. Úvod... 7

2D KRESLENÍ. COPYRIGHT 2008,ŠPINAR software s.r.o.,czech REPUBLIC -EUROPE , Brno, Lipová 11, Tel

Struèný obsah. Základní průprava. Vývoj aplikací v Excelu. Základy jazyka Visual Basic for Applications. Práce s vlastními dialogy (UserForms)

DATABÁZE DŮLEŽITÉ: Před načtením nové databáze do vaší databáze si prosím přečtěte následující informace, které vám umožní:

rozlišení obrazovky 1024 x 768 pixelů operační systém Windows 2000, Windows XP, Windows Vista 1 volný sériový port (volitelný) přístup na internet

Záloha a obnovení Uživatelská příručka

Visual Basic for Application

NÁVODY PRO PEDAGOGY. Garant LMS Moodle Mgr. Naděžda Fasurová, Ph.D. VŠKE, a.s. Vstup do systému Moodle na VŠKE

Algoritmizace a programování

1 Seznámení s Word 2010, karty, nejčastější činnosti. 2 Tvorba dokumentu

Odpov di na dotazy uchaze k ve ejné zakázce. 25/

PR VODCE NASTAVENÍM MODELU

Team Engineering. New in V13. TIA Portal news. Restricted / Siemens AG All Rights Reserved.

Poukázky v obálkách. MOJESODEXO.CZ - Poukázky v obálkách Uživatelská příručka MOJESODEXO.CZ. Uživatelská příručka. Strana 1 / 1. Verze aplikace: 1.4.

Pokyny pro vypln ní elektronické žádosti

V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.

EMC2399. Programové vybavení pro řízení, sběr a zpracování dat pro EMC měření spektrálním analyzátorem Aeroflex řady 2399

Návod k použití aplikace MARKETINGOVÉ PRŮZKUMY.CZ

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

Komfortní datová schránka

MS Excel makra a VBA

POUŽÍVÁME TABULKY A GRAFY VE VÝUCE

Zabezpečení Uživatelská příručka

PŘÍLOHA č. 2C PŘÍRUČKA IS KP14+ PRO OPTP - ZPRÁVA O REALIZACI

Příručka pro zadavatele E-ZAK krok za krokem

Evko - uºivatelská p íru ka verze 5.1.0

Integrovaný Ekonomický Systém Zakázkový list - IES WIN 2006

Obsah. Úvodem 11 Komu je kniha určena 12 Co v knize najdete 12

Úprava tabulek v MS Word. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T. G. Masaryka, Kostelec nad Orlicí

Používání klávesnice. Zobrazit vše. V tomto článku

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

Stručná p íručka k používání softwaru HP Photo Printing

Návod na elektronické podání

DUM 05 téma: Základy obsluha Gimp

Novinky verzí SKLADNÍK 4.24 a 4.25

VÝZVA. Česká republika-ministerstvo školství, mládeže a tělovýchovy (dále jen zadavatel) se sídlem Karmelitská 7, Praha 1, IČ

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

Ukázka knihy z internetového knihkupectví

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6

Aktualizace softwaru Uživatelská příručka

Základní příručka pro učitele

Stručný obsah. 7 Aplikace dodávané jako příslušenství Windows Multimediální aplikace 187

1. Požadavky na provoz aplikací IISPP

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

TRANSFORMACE. Verze 4.0

Generátor list nastavení

TVORBA MULTIMEDIÁLNÍCH PREZENTACÍ. Mgr. Jan Straka

Textové editory a procesory

All-in-one POS TS-7003 Stru ný pr vodce instalací a prodejem

Obsah. Úvod O čem je tato kniha...12 Pro koho je kniha určena...12 Pracovní soubory...13 Používané konvence Začínáme s Wordem...

Pokyny pro vypln ní elektronické žádosti podprogram 117D51300 Podpora výstavby technické infrastruktury

Stru né pokyny. D kujeme vám, že jste si k uspokojení svých pot eb v oblasti p enosných po íta vybrali notebook Acer.

WEBDISPEČINK NA MOBILNÍCH ZAŘÍZENÍCH PŘÍRUČKA PRO WD MOBILE

U ivatelská p íru ka

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

Vytvoření nebo odstranění makra Excel

Stru ný obsah. Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15

Za ízení TouchPad aklávesnice

Návod k používání registračního systému ČSLH

ISDN telefony AVAYA 1408 / 1416 připojené na Integral Enterprise. Návod na obsluhu

Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s.

Outlook manuál. BeeOnline. Rychlý kontakt:

NÁVOD K HODINKÁM S KAMEROU 1. Úvod Dostává se Vám do rukou kamera s mikrofonem, záznamem obrazu a zvuku skrytá v náramkových hodinkách.

SEMINÁ KOMUNIKA NÍCH DOVEDNOSTÍ TYPOGRAFICKÉ ZÁSADY ÚPRAVY TEXTU. popisky a legendy. poznámky. ást 3

HLAVA III PODROBNOSTI O VEDENÍ ÚST EDNÍHO SEZNAMU OCHRANY P ÍRODY

Vodafone promo kit uživatelský manuál Uživatelský manuál pro aplikaci. Vodafone promo kit. Verze dokumentu: 2.

Software IS Řízení stavebních zakázek

Microsoft Office Project 2003 Úkoly projektu 1. Začátek práce na projektu 1.1 Nastavení data projektu Plánovat od Datum zahájení Datum dokončení

Outlook David Procházka. Vydala Grada Publishing, a.s. U Pr honu 22, Praha 7 jako svou publikaci

GEN230-3i3u-X-ADE. Specifikace kalibra ního generátoru

IP kamerový systém - uživatelský návod k obsluze

Registr UJO. Příručka pro uživatele. Institut biostatistiky a analýz. Lékařské a Přírodovědecké fakulty Masarykovy univerzity.

Tekla Structures Multi-user Mode

MANUÁL PRO PRÁCI S POČÍTAČOVÝM PROGRAMEM SLUNÍČKO

Zám r a cíle projektu

Android Elizabeth. Verze: 1.3

SAUT 3.1. program pro vyhodnocení výsledků zkoušení impulzní odrazovou metodou

Semestrální práce Testování uživatelského rozhraní

Transkript:

Obsah 1 2 3 Úvod...10 Události v Excelu...13 1.1 Využití událostí ve vlastních aplikacích... 15 Umíst ní procedur událostí... 15 Jak zabránit výskytu událostí... 18 1.2 Události sešitu... 19 P ehled událostí sešitu... 19 P íklady využití základních událostí sešitu... 21 1.3 Události list... 23 P ehled událostí listu... 24 P ehled událostí graf (listu typu graf)... 28 1.4 Události aplikace Excel... 31 Práce s grafy pomocí jazyka VBA...33 2.1 Úvod...... 34 Grafy v objektovém modelu VBA... 34 2.2 Základní postupy p i práci s grafy... 37 Vytvo ení nového grafu pomocí kódu VBA... 37 2.3 Práce s datovými adami... 42 Kolekce SeriesCollection... 42 Práce s jednotlivými datovými adami... 45 Pokro ilé techniky práce s grafy... 48 Automatické p izp sobení hodnot osy Y... 48 2.4 Formátování grafu... 51 2.5 P ehled vlastností a metod objekt... 52 Vlastnosti objektu ChartObject... 52 Metody objektu ChartObject... 54 Vlastnosti objektu Chart... 54 Metody objektu Chart... 56 T ídy objekt a moduly t íd...57 3.1 Pro, k emu, jak... 58 3.2 Vytvo ení nové t ídy a konkrétní instance... 59 První pokus... 60 Vytvá ení vlastností a metod... 62 Zachycení událostí objektu Application pomocí t ídy... 67 Zachycení událostí vložených graf... 68 P íklad: použití událostí u vloženého grafu... 69 Programování v Excelu 2000, 2002, 2003 O B S A H 5

Programování v Excelu 2000, 2002, 2003 4 Formulá e...73 4.1 Vytvo ení formulá e, jeho zobrazení a ukon ení pomocí VBA... 75 Modul kódu formulá e...76 Toolbox (souprava nástroj )...76 Spušt ní formulá e...77 Modální a nemodální formulá e...78 Uzav ení formulá e...79 4.2 Okno Properties...80 4.3 Ovládací prvky...82 P idání ovládacího prvku do formulá e...82 Výb r ovládacího prvku na formulá i...84 Konvence pro názvy formulá a ovládacích prvk...85 Po adí ovládacích prvk na formulá i...86 Dostupnost ovládacích prvk a p esun mezi nimi...88 Úprava ovládacích prvk ve formulá i...89 4.4 P ehled typ ovládacích prvk...91 P íkazové tla ítko (CommandButton)...91 Popisek (Label)...92 Textové pole (TextBox)...93 Zaškrtávací polí ko (CheckBox)...94 P epína (OptionButton)...95 Seznam (ListBox)...96 Rozvírací seznam (ComboBox)...99 Ráme ek (Frame)...100 P epínací tla ítko (ToggleButton)...101 íselník (SpinButton)...101 Posuvník (ScrollBar)...102 RefEdit...102 Vícenásobná stránka (MultiPage)...102 Karty (TabStrip)...103 Obraz (Image)...104 4.5 Odkazy na formulá e a ovládací prvky v kódu VBA...105 P íklad formulá pro zobrazení informací o listu...106 Další p íklad seznam všech pojmenovaných názv v sešitu.. 108 Ukázka práce se zaškrtávacími polí ky a p epína i...111 4.6 Zpracování událostí souvisejících s klávesnicí a myší...113 Události klávesnice...115 4.7 Používání ovládacích prvk p ímo na pracovním listu...116 4.8 Základní spole né vlastnosti a metody ovládacích prvk a uživatelských formulá...119 6 O B S A H

5 6 Vlastnosti ovliv ující vzhled a chování formulá e i ovládacích prvk... 119 Další spole né vlastnosti... 121 Metody formulá e nebo ovládacích prvk... 121 4.9 P ehled d ležitých vlastností a metod objektu UserForm... 122 Vlastnosti... 122 Metody... 124 Základní události formulá e... 124 4.10 Sdílení formulá... 124 Práce s externími soubory, export a import soubor...127 5.1 Práce s externími soubory... 128 Základní operace se soubory... 128 5.2 Jednoduché tení a zápis textových soubor... 132 5.3 Vlastní manipulace s textovými soubory... 136 Otev ení textového souboru... 137 Na tení obsahu textového souboru... 138 Zápis údaj do textového souboru... 139 Import dat do listu Excelu pomocí p íkazu Line Input #... 139 Na ítání textového souboru p íkazem Input #... 141 Zápis do soubor p íkazy Write # a Print #... 141 Export oblasti bun k do textového souboru pomocí p íkazu Write #... 142 Využití p íkazu Write pro zápis údaj o chybách za b hu programu... 143 5.4 Ukládání r zných nastavení do registru Windows... 144 Použití p íkaz SaveSetting, DeleteSetting a funkcí GetSetting, GetAllSettings... 145 Další možnosti pro ukládání nastavení... 145 Databáze a seznamy v Excelu...147 Základní terminologie... 149 Ru ní správa seznamu pomocí nabídky Excelu... 149 6.1 Vytvo ení seznamu... 149 Po izování záznam v seznamu... 150 6.2 azení, filtrování a další operace s databázemi Excelu pomocí VBA... 150 6.3 P íklad jednoduché aplikace využívající formulá e (Adresá )... 155 Jak na ítat a ukládat data... 156 innosti p i otev ení formulá e... 157 Programování v Excelu 2000, 2002, 2003 O B S A H 7

Programování v Excelu 2000, 2002, 2003 7 8 9 Obecné procedury pro na tení záznamu, uložení p vodních hodnot a uložení zm n...158 Tla ítka pro p echod na další (p edchozí záznam)...161 Pracovní prost edí Excelu nabídky a penely nástroj...165 7.1 ásti pracovní plochy Excelu a jejich zobrazení i skrytí pomocí VBA...166 7.2 Panely nabídek a panely nástroj možnosti manipulace s nimi...170 Kolekce CommandBars, objekty CommandBar...170 Objekt CommandBarControl a objekty vyjad ující jednotlivé typy ovládacích prvk...172 7.3 Práce s nabídkami a panely nástroj...173 Vytvá ení a odstran ní vlastních panel a nabídek...173 Úprava existujících panel a nabídek...175 7.4 Místní nabídky...181 Vytvo ení, úprava a odstran ní nové místní nabídky...182 7.5 P ehled vlastností a metod objekt CommandBars a CommandBar...183 Vlastnosti kolekce CommandBars...183 Metody kolekce CommandBars...183 Vlastnosti objektu CommandBar...184 Metody objektu CommandBar...185 Základní vlastnosti a metody ovládacích prvk na panelech p íkaz...186 Dopl ky v Excelu...187 8.1 Ú el dopl k a p ehled dopl k dodávaných p ímo s Excelem... 189 8.2 Obecné zásady pro vytvá ení dopl k...190 8.3 P íklad dopl ku p evod do HTML...192 Formulá...192 Programový kód dopl ku...193 Spolupráce s dalšími programy...197 9.1 Spoušt ní a aktivace jiných aplikací...198 Funkce Shell...198 Spušt ní program pomocí technologie Automation...199 P epínání mezi n kolika programy...202 9.2 Technologie Automation a její využití pro spolupráci s Wordem nebo Outlookem...203 P íklady práce s Wordem...203 P íklady práce s Outlookem...205 8 O B S A H

10 Funkce Windows API...211 10.1 Co se skrývá za zkratkou API... 212 Deklarace API funkcí a p íkaz... 212 10.2 Konstanty a uživatelské typy prom nných v API... 213 Další lah dky spojené s voláním rutin API... 215 N kolik varování... 216 10.3 Základní p íklady na používání Windows API... 216 Práce s disky, složkami a soubory... 217 Práce se systémem Windows... 219 API pro práci se sítí... 221 Další vhodné ukázky... 222 Kde hledat dále?... 223 Rejst ík...225 Programování v Excelu 2000, 2002, 2003 O B S A H 9

Programování v Excelu 2000, 2002, 2003 Úvod Kniha se zam uje na základy programování v Excelu 2003; pokud máte starší verze Excelu (97, 2000, 2002), m žete se podle ní u it také, z hlediska základ programování se tyto verze neliší. Tato kniha voln navazuje na knihu s názvem Excel 2000, 2002, 2003 záznam, úprava a programování maker (Grada, 2004), v níž se v nuji t m záležitostem, které programátor Excelu prost musí znát, a t m technikám, které bude v Excelu používat nej ast ji. Kniha, již však držíte v rukou práv te, je u ebnicí pokro ilých programovacích technik a objekt. V celém textu se snažím být maximáln stru ný, což je p irozený d sledek dlouholeté zkušeností lektora, který ví, že jeho poslucha i ( tená i) se cht jí n co nau it a ne poslouchat marketingové a jiné podobné bláboly. Sem tam na n které v ty i pasáže narazíte vícekrát opakování je matka moudrosti. Programování maker není záležitostí pro úplné po íta ové za áte níky a také ne pro ty, kdo si jen rádi hrají. V celém textu knihy p edpokládám, že umíte Excel ovládat a víte, k emu všemu se dá použít. Nap. v ásti v nované programování graf rozhodn nenajdete výklad toho, jak se graf vytvá í ru n v uživatelském rozhraní Po ítejte také s tím, že bez znalosti angli tiny se toho moc nenau íte, pro zvládnutí pokro- ilých témat je nezbytná, ale i u základ se vám bude hodit. esky toho totiž p íliš nevyšlo a spoustu materiál seženete na internetu jen v angli tin. Schází p edevším eská referen ní p íru ka s kompletním eským p ekladem nápov dy k objekt m, vlastnostem, metodám a událostem, i když se v tomto sm ru stále dá doporu it výte ná kníže ka Programování Office 97 od Markéty a Petra Šitinových, kterou vydalo nakladatelství Grada v roce 1998. Je p irozené, že váš pohled na knihu bude jiný než m j. Pokud zjistíte, že v knize schází n která fakta, bez kterých si nevíte rady, napište na adresu sdds@seznam.cz a já se pokusím vám stru n vysv tlit souvislosti. Používané konvence Jak jste již z publikací nakladatelství Grada zvyklí, orientaci v textu vám budou usnad ovat r zné typografické prvky: Pozor! Název Soubor Storno D ležité pojmy a pasáže textu, které je t eba zvýraznit, jsou vysazeny tu n. Názvy firem, softwarových produkt, aplikací a jednotlivých objekt programu ozna uji kurzívou. Názvy soubor, složek a internetové adresy. Texty, které se objevují v uživatelském prost edí aplikací Windows, jsou vysazeny jako b žný text, ale v tu né kurziv. Takto jsou odlišeny p íkazy nabídek, popisky ovládacích tla ítek, názvy dialogových oken a další citace z obrazovky. 10 Ú V O D

Vložit Rám KLÁVESA Jednotlivé p íkazy v posloupnosti p íkaz zadávané v nabídkách, podnabídkách a následn otevíraných dialogových oknech odd lujeme šipkami nap. Nástroje Možnosti Zobrazení Zalomit do okna. Názvy kláves a klávesových zkratek ozna ujeme KAPITÁLKAMI nap. ENTER nebo ALT+S. Program Pro výpis zdrojového kódu v p íkladech a pro odlišení jednotlivých prvk programu v b žném textu je použito bezpatkové neproporcionální písmo. V textu se budete asto setkávat s odstavci ozna enými ikonou, která bude charakterizovat druh informace v daném odstavci: Píšící ruka ozna uje poznámku, která není nezbytná k pochopení dané problematiky, ale týká se tématu a prozrazuje další souvislosti. Usm vá ek vás upozorní na r zné tipy a triky, kterými si m žete usnadnit n které innosti nebo které vám umožní dosáhnout efektních výsledk. Varovn vzty ený prst ozna uje text, který vás upozor uje na n co, na co byste si m li dát pozor, co vás m že nep íjemn p ekvapit nebo co by vám mohlo zp sobit problémy. Bomba je p edzv stí katastrofy nebo alespo velkých nep íjemností. Tato ikona totiž ozna uje text upozor ující na skute nosti, vedoucí ke ztrát dat, zhroucení systém a podobným havarijním stav m. Programování v Excelu 2000, 2002, 2003 Ú V O D 11

1. Události v Excelu 13

Programování v Excelu 2000, 2002, 2003 1. Události v Excelu V prvním dílu u ebnice byly události zmín ny jen velmi stru n, nyní p išel as v novat se jim podrobn ji. V dalších kapitolách se s jejich využitím budete setkávat velmi asto. P ipome me si, co už víte událost (angl. event) je akce vyvolaná uživatelem nebo systémem, kterou objekt (obecn, nejenom v Excelu) dokáže rozpoznat. Mezi takové akce pat í nap. otev ení i uzav ení sešitu, klepnutí i poklepání myší na objekt, zm na hodnoty v bu ce apod. Každá událost má p i azenu svoji proceduru ( íká se jí událostní procedura, angl. event procedure), která standardn neobsahuje žádný kód. Napíšete-li však n jaký kód do událostní procedury, bude spušt n p i každém výskytu dané události, tedy nap. p i otev ení n jakého sešitu nebo p ed jeho uzav ením, p ed p epo ítáním sešitu, po zm n hodnoty v bu ce apod. Objekty Excelu umí reagovat na velké množství událostí. Rozsah této knihy proto umožní p edstavit si jen n které z nich, stru ný p ehled všech událostí je uveden vždy v p íslušné ásti kapitoly: Události sešitu: Probíhají v rámci sešitu. Jako p íklad lze uvést událost Open (vytvo ení nebo otev ení sešitu), BeforeSave (sešit bude uložen), BeforePrint (sešit bude tišt n) nebo NewSheet (je p idáván nový list). Události listu: Jsou vyvolány pro ur itý list. Sem pat í nap. událost Activate (list je aktivován), SelectionChange (zm na výb ru na listu) i Calculate (list je p epo ítáván). Události grafu: Jsou vyvolány pro ur itý list typu graf. Pat í mezi n události Resize (po zm n velikosti grafu) i SeriesChange (zm na datového bodu v n jaké datové ad ). Pro zachytávání událostí v grafech vložených na pracovním listu je nutné použít modul t ídy (ty budou podrobn probrány ve t etí kapitole). Události celé aplikace: Probíhají na úrovni celé aplikace (Excelu). Mezi nejvýznamn jší pat í nap. NewWorkbook (vytvo ení nového sešitu) nebo SheetChange (prob hla zm na bu ky v libovolném sešitu). Pro práci s událostmi aplikace je vždy nutný modul t ídy. Události formulá a jejich ovládacích prvk : Vyskytují se v rámci ur itého formulá e nebo ovlada e. Události, které neprobíhají v rámci žádného objektu: Sem pat í dv události na úrovni celé aplikace OnTime a OnKey. Funk n se odlišují od jiných událostí. N které akce spouští více událostí za sebou. Nap. p i otevírání sešitu prob hnou postupn tyto události sešitu: Open Activate WindowActivate 14 U D Á L O S T I V E X C E L U

P i uzavírání sešitu probíhají (minimáln ) tyto události sešitu: BeforeClose WindowDeactivate Deactivate Posloupnosti událostí bývají mnohem složit jší, než si m žete p edstavit na základ t chto p íklad. V obou ukázkách šlo navíc jen o události na úrovni sešitu. Nap. p i p idání nového listu do sešitu však prob hnou i události na úrovni listu a celé aplikace. Posloupnost událostí navíc nemusí být vždy zcela logická p i p idání nového listu do sešitu prob hne nejd íve událost SheetActivate (aktivace listu) a až poté událost WorkbookNewSheet (nový list v sešitu). Další sekvence m žete zkoumat sami podle libosti, nejjednodušší je zapsat do každé zkoumané událostní procedury p íkaz: Debug.Print "Název_Procedury" Bližší pr zkum posloupností, v jakých jednotlivé události probíhají, se ovšem v praxi vyplatí pouze v p ípadech, kdy využíváte v tší množství událostí. Chcete-li spustit jednu proceduru p i otev ení sešitu a druhou p i p epo tu ur itého listu, není t eba se ni eho obávat. 1.1 Využití událostí ve vlastních aplikacích Aplikace ízené událostmi jsou v systému Windows rozší eny tak, že už si to ani neuv domujeme. Každé dialogové okno je typickou ukázkou po klepnutí na tla ítko nebo po zm n hodnoty ur itého ovlada e je okamžit provedena n jaká operace. Klepnutí nebo poklepání myší, pohyb kurzorem nebo stisk klávesy jsou také událostmi, které je každý prvek v dialogovém okn schopen rozeznat. Umíst ní procedur událostí Velmi astou chybou mnoha za áte ník (v diskusních konferencích narazíte na spoustu dotaz ) je fakt, že procedury, které by m ly p i vzniku n jaké události prob hnout, nejsou spušt ny. P í ina problému je jednoduchá událostní procedury je t eba vždy zapsat na správné místo. V okn Project m že mít každý sešit tyto ásti: Objekty jednotlivých list : Jejich po et odpovídá po tu pracovních list v sešitu. Objekty jednotlivých list typu graf: P idáte-li do sešitu graf na samostatném listu. Objekt ThisWorkbook: P edstavuje celý sešit. Standardní moduly VBA ve složce Modules: Do t chto modul nikdy neumis ujte událostní procedury. Jejich hlavi ky se ve standardních modulech ani nevyskytují, musely byste je tam ru n dopisovat. Moduly t íd: Události v modulech t íd si vysv tlíme ve t etí kapitole. Formulá e: Podrobný výklad událostí u formulá je ve tvrté kapitole. Programování v Excelu 2000, 2002, 2003 U D Á L O S T I V E X C E L U 15

Programování v Excelu 2000, 2002, 2003 Obrázek 1.1 R zné ásti projektu Excelu. Když myší poklepete na objekt listu nebo objekt ThisWorkbook, otev e se okno kódu daného objektu. V jeho horní ásti jsou dva rozevírací seznamy. Levý seznam obsahuje ádek (General) a ádky Worksheet, Chart nebo Workbook. ást General znáte z klasických modul : slouží pro deklarování prom nných, které mají sv j rozsah platnosti na úrovni modulu, v praxi tu tedy budete deklarovat prom nné, jež budete používat ve více událostech, probíhajících v daném modulu. Pozor na to, že prom nné, které deklarujete v modulu ThisWorkbook nebo v modulech list jako ve ejné (Public), nejsou dostupné z žádného jiného modulu, tedy ani z jiného modulu listu nebo ze standardních modul! Ve ejné prom nné musíte vždy deklarovat klí ovým slovem Public ve standardním modulu! Stejné pravidlo platí i pro všeobecné procedury ty musí být umíst ny také ve standardním modulu. VBA vám sice umož uje vkládat je i do modul list nebo do modulu ThisWorkbook, ale takové procedury je možné spoušt t jen v rámci daného modulu! Po krátké odbo ce se vra me zp t k oknu kódu pro moduly list i modul ThisWorkbook. Vyberete-li v levém seznamu druhý ádek (Worksheet, Chart nebo Workbook), objeví se v pravém seznamu všechny události, které m žete pro list i sešit využít. Jakmile v pravém rozvíracího seznamu vyberete n jakou událost, vloží editor VBA do okna modulu hlavi ku odpovídající (prázdné) procedury: Private Sub Workbook_Activate() Veškerý kód zapsaný mezi tyto dva ádky bude proveden p i každém vyvolání dané události. 16 U D Á L O S T I V E X C E L U

Obrázek 1.2 V pravém rozevíracím seznamu okna kódu vidíte události, které m žete zachytávat na úrovni listu i sešitu. N které událostní procedury obsahují v závorce za názvem procedury ješt seznam parametr. Ty jsou vestav ny a vy jejich deklarace v žádném p ípad nem žete m nit! Stejn tak nelze do seznamu parametr p idávat parametry nové. Parametry událostí se vyskytují tam, kde jedna událost m že prob hnout pro více r zných objekt, nebo kde vám systém p edává ješt dodate né údaje k dané události. Nap. u události pohybu myší nad objektem (MouseMove) dostanete p edány sou adnice kurzoru (p i události stisknutí tla ítka myši MouseDown zase údaj o tom, které tla ítko bylo stisknuto). Dalším p íkladem je událost SheetActivate (je na úrovni sešitu, proto ji najdete v modulu ThisWorkbook) prob hne p i aktivaci n kterého listu v sešitu. Aby bylo možné ur it, který list byl aktivován, je odkaz na aktivovaný list (tedy na objekt Worksheet nebo Chart, deklarovaný ovšem jako Object) p edán jako parametr procedury: Private Sub Workbook_SheetActivate(ByVal Sh As Object) Deklarace parametru jako typ Object má v tomto p ípad ur ité nep íjemné d sledky. Musíte totiž rozlišovat, zda byl aktivován list typu graf nebo pracovní list. Nap. následující kód prob hne v po ádku, bude-li aktivován pracovní list: Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox Sh.Name ' název listu MsgBox Sh.Rows.Count ' po et ádk v listu P i aktivaci listu typu graf by pochopiteln došlo k chyb za b hu programu ve druhém ádku, protože list typu graf neobsahuje žádné ádky a tudíž odkaz na kolekci Rows není platný. Jak si m žete ov it, který typ listu byl aktivován? Slouží k tomu operátor TypeOf, volaný nap. v bloku If End If: ' zde bude operace, kterou je možné provád t jen pro pracovní listy Private Sub Workbook_SheetActivate(ByVal Sh As Object) If TypeOf Sh Is Worksheet Then ElseIf TypeOf Sh Is Chart ' a zde operace pro listy typu graf End If Programování v Excelu 2000, 2002, 2003 U D Á L O S T I V E X C E L U 17

Programování v Excelu 2000, 2002, 2003 V n kterých událostních procedurách se objevuje logický parametr Cancel. Nap. deklarace událostní procedury BeforeClose v modulu ThisWorkbook vypadá takto: Private Sub Workbook_BeforeClose(Cancel As Boolean) Výchozí hodnota p edaného parametru Cancel je False. Jestliže však ve vlastním kódu procedury nastavíte tento parametr na True, nebude sešit uzav en. Ukázku možného využití p edstavuje zákaz uzav ení sešitu, zapomn l-li uživatel vytisknout denní p ehled: Private Sub Workbook_BeforeClose(Cancel As Boolean) dotaz = "Vytisknul jste denní p ehled zm n?" odpoved = MsgBox(dotaz, vbyesno, "Ukon ení práce...") If odpoved = vbno Then Cancel = True Procedura Workbook_BeforeClose je spušt na po vydání p íkazu k uzav ení sešitu (Soubor Zav ít, Soubor Konec apod.). Procedura nejd íve zobrazí okno hlášení a odpoví-li uživatel záporn klepnutím na tla ítko Ne, bude parametr Cancel nastaven na hodnotu True. Uzav ení sešitu je poté zrušeno. Jak zabránit výskytu událostí V praxi se setkáte se situacemi, kdy máte pro ur itou událost napsán kód, ale tento kód m že být provád n jen n kdy. Nap. p i otevírání sešitu nebude z n jakého d vodu žádoucí, aby byl proveden kód události Activate. P i každé další aktivaci daného sešitu však už kód proveden být musí. Obdobn se m žete potkat s p ípady, kdy v kódu událostní procedury provedete n co, ím danou událost znovu spustíte. Zm níte-li nap. v události listu Change hodnotu bu ky v tomto listu (p íklad si ukážeme za chvíli), bude událost Change generována znovu. V takovém p ípad ovšem hrozí nekone né zacyklení kódu. Existuje dvojí možné ešení t chto situací. Bu zachytávání událostí zcela vypnete, nebo použijete logickou prom nnou, která ukon í provád ní kódu. První ešení je lepší, protože událost v bec není vyvolána, ovšem jeho nevýhodou je fakt, že neprob hnou v bec žádné události. Logická prom nná nic nepotla uje, jen bezprost edn ukon í provád ní kódu v událostní procedu e. Zachytávání událostí vypnete takto: Debug.Print "Název_Procedury" Vlastnost EnableEvents má logické hodnoty True/False, za ádkem, který by vyvolal nežádoucí generování událostí, zase zachytávání zapnete. Ukázka druhého p ístupu pomocí logické prom nné potla í generování události Activate p i otev ení sešitu: 18 U D Á L O S T I V E X C E L U

' prom nnou deklarujeme v modulu ThisWorkbook - jinde ji nepot ebujeme Private lpotlaceni As Boolean Private Sub Workbook_Activate() If lpotlaceni Then ' p i otev ení sešitu prob hne tato ást lpotlaceni = False Exit Sub Else ' zde bude kód, ' který bude proveden p i dalších aktivacích sešitu End If Private Sub Workbook_Open() lpotlaceni = True 1.2 Události sešitu Tyto události probíhají v rámci konkrétního (jednoho) sešitu. Jejich událostní procedury jsou uloženy v modulu kódu pro objekt ThisWorkbook. Úplný seznam událostí je uveden dále, po n m se zam íme na nejd ležit jší události, které se v praxi používají. Jestliže pot ebujete zachytávat události pro libovolný otev ený sešit, musíte používat události na úrovni celé aplikace. Tato problematika je popsána v t etí kapitole této knihy, seznam událostí objektu Application najdete v záv ru této kapitoly. P ehled událostí sešitu Událost Activate AddinInstall AddinUninstall AfterXmlExport AfterXmlImport Akce, která vyvolá událost Otev ení sešitu a p echod do libovolného okna sešitu z jiného sešitu. Událost neprob hne p i vytvá ení nového okna sešitu ani p i p echodu mezi dv ma okny téhož (v tom p ípad však prob hne událost Window- Activate). Sešit je instalován do prost edí Excelu jako dopln k. Odinstalování sešitu, který je nainstalován jako dopln k. Uložení nebo export dat ze sešitu do datového souboru XML. Nové na tení dat pomocí existujícího datového p ipojení, nebo import dat XML do sešitu. Programování v Excelu 2000, 2002, 2003 BeforeClose Probíhá p ed uzav ením sešitu (= byl vydán p íkaz k uzav ení sešitu). U D Á L O S T I V E X C E L U 19

- Programování v Excelu 2000, 2002, 2003 Událost BeforePrint BeforeSave BeforeXmlExport BeforeXmlImport Deactivate NewSheet Open PivotTableClose- Connection PivotTableOpen- Connection SheetActivate Akce, která vyvolá událost Probíhá p ed vytišt ním sešitu (nebo jeho ásti). Probíhá p ed uložením sešitu. Prob hne p edtím, než Excel uloží nebo exportuje data ze sešitu do datového souboru XML. Prob hne p ed novým na tením dat pomocí existujícího datového p ipojení, nebo po naimportování dat XML do sešitu. P i deaktivaci sešitu (probíhá též p i uzavírání sešitu, ale až po události BeforeClose). Vložení nového listu do sešitu. Odkaz na nový list je do události p edán jako parametr Sh. Otvírání sešitu. Po této události probíhá ješt událost Activate. Prob hne poté, co kontingen ní tabulka uzav e p ipojení ke zdroji dat. Prob hne poté, co kontingen ní tabulka otev e p ipojení ke zdroji dat. Aktivace libovolného listu v sešitu. SheetBeforeDoubleClick P i poklepání na libovolném listu. Událost probíhá p ed výchozí akcí pro poklepání. SheetBeforeRightClick SheetCalculate SheetChange SheetDeactivate SheetFollowHyperlink SheetPivotTableUpdate Po klepnutí pravým tla ítkem myši na libovolném listu. Událost probíhá p ed výchozí akcí pro klepnutí pravým tla ítkem myši. P i p epo ítání obsahu libovolného listu. Obsah libovolného sešitu je m n n uživatelem nebo aktualizací vn jšího propojení. P i deaktivaci libovolného listu v sešitu. P i klepnutí myší na libovolný hypertextový odkaz v libovolném listu. Po aktualizaci listu s kontingen ní tabulkou. SheetSelectionChange Zm na výb ru na libovolném listu, s výjimkou list typu graf. 20 U D Á L O S T I V E X C E L U

Událost Sync WindowActivate WindowDeactivate WindowResize Akce, která vyvolá událost Synchronizace lokální kopie pracovního listu, která je sou ástí pracovního prostoru dokumentu, s kopií na serveru. Aktivace kteréhokoli okna sešitu. Deaktivace kteréhokoli okna sešitu. Zm na velikosti kteréhokoli okna sešitu. P íklady využití základních událostí sešitu Událost Open Tato událost je využívána z ejm nej ast ji. Zp soby jejího využití jsou skute n bohaté: Otev ení dalších pot ebných sešit, p ípadn dopl k. Nastavení vlastních panel nástroj i nabídek, p ípadn klávesových zkratek. P echod na ur itý list. Zobrazení úvodního formulá e, sloužícího jako uživatelské rozhraní. Automatické provedení ur itých výpo t. Zápis údaj do protokolu, ve kterém je sledována innost uživatele (ti zkušen jší z vás samoz ejm v dí, že k t mto ú el m se dá využít i Deník v Outlooku nebo zvláštní aplikace ). Nastavení vlastnosti listu ScrollArea (ta není ukládána spolu se sešitem). Budete-li p i otevírání sešitu držet stisknutou klávesu SHIFT, není událostní procedura Workbook_Open spušt na (jde o jednu z možností, jak se bránit makrovir m). Ukážeme si jednoduchý kód, uložený v sešitu složeném z 13 list (prvních 12 list pro jednotlivé m síce a poslední list pro souhrnné údaje). P i otevírání sešitu je zkontrolováno datum a podle aktuálního m síce je aktivován p íslušný list. ' v deklara ní ásti modulu ThisWorkbook p íkaz Option Base 1 ' zp sobí íslování prvk pole od jedni ky, nikoli od nuly Option Base 1 Private Sub Workbook_Open() Dim varmesice varmesice = Array("Leden", "Únor", "B ezen", "Duben", _ "Kv ten", " erven"," ervenec", "Srpen", "Zá í", " íjen", _ "Listopad", "Prosinec") Worksheets(varMesice(Month(Date))).Activate Programování v Excelu 2000, 2002, 2003 Názvy list jsou pomocí funkce Array uloženy do pole varmesice a metoda Activate p i otev ení sešitu zobrazí požadovaný list. U D Á L O S T I V E X C E L U 21

Programování v Excelu 2000, 2002, 2003 Události Activate, Deactivate Událost Activate je vyvolána p i aktivaci sešitu (jeho libovolného okna). Využití této události je op t pestré: Úprava velikosti aktivovaného okna. Zobrazení i skrytí n které nabídky nebo panelu nástroj, která/ý je platná/ý jen pro daný sešit. Aktualizace údaj ve stavovém ádku. Ukázka kódu pro tuto událost obsahuje maximalizaci okna sešitu p i jeho aktivaci a zobrazení speciálního panelu nástroj. Private Sub Workbook_Activate() ActiveWindow.WindowState = xlmaximized CommandBars("Statistika").Visible = True Událost Deactivate prob hne p i p echodu do jiného sešitu, p i skrytí sešitu nebo p ed jeho uzav ením, tedy v p ípadech, kdy sešit p estává být aktivní. Její využití je obdobné jako u události Activate (zobrazení i skrytí n které nabídky nebo panelu nástroj ). Private Sub Workbook_Deactivate() CommandBars("Statistika").Visible = False Událost BeforeSave Tato událost prob hne t sn p ed skute ným fyzickým uložením sešitu. Pomocí parametru SaveAsUI je možné v této události rozlišit, zda bude i nebude zobrazeno dialogové okno Uložit jako (to se zobrazí v p ípadech, kdy sešit ješt nebyl uložen, byl otev en pouze pro tení nebo když uživatel chce sešit uložit pod jiným názvem (p íkaz Soubor Uložit jako). Parametr Cancel umož uje zrušit uložení souboru. ' kód, který se provede p ed zobrazením dialogového okna Uložit jako Private Sub Workbook_BeforeSave _ ByVal SaveAsUI As Boolean, Cancel As Boolean) If SaveAsUI Then End If Událost BeforePrint Je spušt na p ed vytišt ním dokumentu nebo zobrazením tiskového náhledu (poté, co uživatel zadal p íslušný p íkaz). V této události se vyskytuje již probraný parametr Cancel, takže tisk sešitu nebo jeho ásti lze zrušit nastavením hodnoty tohoto parametru na True. Jednoduchá ukázka využití této procedury zobrazí okno hlášení, upozor ující uživatele, aby se p esv d il, zda má založen správný typ papíru: Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim odpoved As Integer odpoved = MsgBox("Tento sešit musí být tišt n na listy formátu A3." _ & " Máte v tiskárn tyto listy p ipraveny?", vbyesno) If odpoved = vbno Then Cancel = True 22 U D Á L O S T I V E X C E L U