4.4 Nápov ě da k jednotlivým objekt ů m...................................56 Kontextová nápov ě da..................................................57
5. Za č ínáme psát vlastní makra.......................................... 60
5.1 Č ásti standardního modulu kódu....................................60
5.2 Procedury a funkce.....................................................60
Jaký je rozdíl mezi makrem a proc edurou?.......................61
Jak vytvo ř íte novou proceduru č i funkci?.........................61
5.3 Jednotlivé č ásti podprogram ů .......................................63
Struktura vlas tní funkce...............................................64
5.4 P ř íkazy a jejich zápis................................................... 64
5.5 Prom ě nné.................................................................65 P ř i ř azení hodnoty do prom ě nné.....................................65
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ší.
V prvním dílu knihy 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. Navazující druhý díl 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! D ů ležité pojmy a pasáže textu, které je t ř eba zvýraznit, jsou vysazeny tu č n ě
Název Názvy firem, softwarových produkt ů , aplikací a jednotlivých objekt ů programu ozna č uji kurzívou
Soubor Názvy soubor ů , složek a internetové adresy.
Storno 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“.
záznam, úprava a programování maker
záznam, úprava a programování maker
Vložit → Rám
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
K LÁVESA Názvy kláves a klávesových zkratek ozna č ujeme K APITÁLKAMI – nap ř E NTER nebo A LT +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 ů
„Mra č oun“ ozna č uje text, v n ě mž vás upozor ň uji na n ě co, co nefunguje tak, jak byste o č ekávali nebo jak popisuje dokumentace.
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.
Takto ozna č ené pasáže textu jsou použity v p ř ípad ě , kdy je t ř eba na chvíli p ř erušit normální b ě h výkladu a upozornit na skute č nosti, které je t ř eba znát pro pochopení další látky, nebo na skute č nosti, které by mohly být pro č tená ř e zajímavé, ale které s vykládanou látkou s ouvisí pouze nep ř ímo.
Makra v Excelu
úprava a programování maker
1. Makra v Excelu
Nejen u po č íta čů , ale i u jiných obor ů se vyplatí držet se p ř ísloví „dvakrát m ěř a jednou ř ež“. U programování však nejde jen o to, abyste p ř ílišným sp ě chem nevyrobili p ř íliš mnoho chyb, jak ř íká p ů vodní smysl staré lidové moudrosti. Základní otázkou tu je, zda má v ů bec smysl se do n ěč eho podobného poušt ě t. A náplní první kapitoly jsou práv ě odpov ě di na otázky: „K č emu je programování? Pro č bych to m ě l d ě lat? Jak se do toho pustit?“
1.1 Pro č je v Excelu obsažen i programovací jazyk Čím více zkušeností s prací v Excelu budete mít, tím rychleji zjistíte, že mnohdy určité činnosti a operace stále a stále opakujete – a to tak č asto, že zatoužíte po n ě jakém „pomocníkovi“, který by tyto operace d ě lal za vás.
V mnoha p ř ípadech vám bude n ě která operace p ř ipadat p ř íliš složitá – nap ř . zapisování vstupních údaj ů do složit ě strukturovaných tabulek, ve kterých budete muset pro každý nový údaj vyhledat p ř íslušný sloupec č i ř ádek. Ztráta č asu bude dost velká, a vy op ě t za čnete uvažovat o „pomocníkovi“, který by celou č innost zrychlil.
Tyto pocity zažívaly tisíce uživatel ů p ř ed vámi, takže do v ě tšiny populárních kancelá ř ských (i jiných) programů byly začleněny i prostředky pro psaní maker (má je nejen Excel, ale i Word a další programy). Makro je sled p ř íkaz ů , jehož cílem je automatizovat n ě které pracovní postupy, vylou č it tak opakované operace a snížit po č et p ř ípadných chyb p ř i zpracování dat.
Ve kterých p ř ípadech je vhodné používat makra?
Otázku je možné položit i jinak – co m ů žete pomocí maker ud ě lat? Možností je mnoho, p ř iblížíme si alespo ň ty nejd ů ležit ě jší:
1. Automatizace č asto provád ě ných úkon ů . Zkuste si sami vzpomenout, které č innosti provádíte vždy p ř ed odchodem z práce, na konci týdne, na konci m ě síce, po vytvo ř ení sešitu … pat ř it sem m ů že nap ř .:
Otev ř ení sešitu, vytišt ě ní jeho č ásti a následné uzav ř ení.
Otev ř ení více sešit ů najednou, slou č ení jejich obsahu do nového sešitu a jeho uložení.
Vytvá ř ení graf ů
Stejné formátování bun ě k.
Tisk ur č ité č ásti sešitu.
2. Vytvo ř ení vlastní funkce č i p ř íkazu . Pomocí vlastní funkce se dají zjednodušit n ě které vzorce, vlastním p ř íkazem m ů žete zkombinovat n ě kolik p ř íkaz ů z nabídek Excelu
3. Vytvo ř it celé nové aplikace . Programovací jazyk v ě tšinou nabízí i vlastní dialogová okna nebo panely nástroj ů , která výrazn ě zjednoduší práci s programem.
Jak se dají makra vytvo ř it?
V zásad ě jsou možné dva zp ů soby :
Makro si m ů žete nahrát pomocí záznamníku maker. P ř i nahrávání makra jsou všechny č innosti, které v Excelu provádíte, automaticky zapisovány do tzv. modulu. Po zastavení záznamníku můžete nahrané makro okamžitě spouštět, ve většině případů je ovšem nutné ho trochu upravit. Výhody a nevýhody záznamníku maker jsou popsány ve druhé kapitole.
Makro můžete napsat ručně, ať již celé, nebo pouze upravit jiné, již existující. Tento přístup má mnoho výhod, ale jednu zásadní nevýhodu – musíte ovládat daný programovací jazyk.
Kdo makra obvykle vytvá ř í?
Každodenní uživatelé Excelu , ovládající programování špatn ě č i v ů bec, kte ř í si ale dokáží makro nahrát a urychlit tak n ě které úkoly.
Vývojá ř i (programáto ř i), jejichž úkolem je vytvá ř et rozsáhlejší tabulkové aplikace pro pracovníky vlastního podniku č i zákazníky.
Jak se dají hotová makra spoušt ě t?
Hotové makro je uloženo v modulu, kde ho lze upravit č i spustit, b ě žný uživatel se ovšem s modulem v praxi p ř ímo nesetká (to by musel otev ř ít editor jazyka Visual Basic ). Proto je nutné, aby mohl spoušt ě t makra p ř ímo z uživatelského prost ř edí. Excel v tomto ohledu nabízí dostate č né množství variant:
Makro m ů žete vždy spustit z dialogového okna Makro , které otev ř ete p ř íkazem
Nástroje → Makro → Makra (nebo klávesovou zkratkou ALT+F8). V dialogovém okně
Makro vidíte seznam všech dostupných maker, pokud n ě které z nich v seznamu označ íte, sta č í pak už jen stisknout tla č ítko Spustit
Makru m ů žete p ř i ř adit klávesovou zkratku . Z ur č itých nepochopitelných d ů vod ů vám však Excel v dialogovém okn ě možností makra nabízí jen zkratky typu C TRL+PÍSMENO , p ř ípadn ě C TRL+S HIFT + PÍSMENO . Neznamená to, že byste makro nemohli s poušt ě t i jinými kombinacemi kláves, ale ty již musíte ur č itým zp ů sobem naprogramovat.
Makro se dá spoušt ě t ur č itým p ř íkazem nabídky . P ř íkaz pro spušt ě ní makra se dá p ř idat do libovolné nabídky, dokonce si m ů žete vytvo ř it i vlastní nabídku.
Makro m ů žete p ř i ř adit n ě jakému tla č ítku na panelu nástroj ů . Jde o velmi č asto použív anou možnost, protože toto tla č ítko m ů žete graficky upravit tak, aby vizuáln ě nazna č ovalo, jaké makro se po jeho stisknutí spustí.
Makro dále mů žete př i ř adit tlačítku umíst ěnému v listu či na formulář i, nebo libovolnému grafickému objektu . I tato možnost se hojn ě využívá, zvlášt ě u maker ur č ených k provád ě ní operací na konkrétním listu.
Krom ě toho umí Excel spustit makro (programový kód) i sám, bez p ř isp ě ní uživatele. Využívá p ř i tom tzv. události , které probíhají p ř i ur č itých akcích, nap ř . otev ř ení sešitu, tisk sešitu, aktivace jiného listu apod.
záznam, úprava a programování maker
záznam, úprava a programování maker
1.2 N ě co málo o vývoji Excelu z hlediska programování
Excel má dost bohatou historii verzí, i když v dnešní dob ě ty starší ( 2, 3, 4, 5, 95 ) jsou již dávno mimo hru; t ě žko se najde n ě kdo, kdo by je ješt ě používal ( Microsoft je již také žádným zp ů sobem nepodporuje).
Ve starých verzích Excelu byl programovací jazyk XLM (viz další č ást), v Excelu 5 se poprvé objevil jazyk Visual Basic for Applications (dále VBA ).
Pro nás je výchozí až Excel 97, který se objevil začátkem roku 1997, buď samostatně nebo jako součást balíku aplikací Office 97. (Někdy je označován jako Excel 8, hlavně v názvech souborů nápov ě d.) Excel 97 totiž p ř išel se zcela novým uživatelským rozhraním pro programování –s moduly maker se pracuje ve zvláštním editoru Visual Basicu, starý způsob psaní kódu přímo v uživatelském prostředí Excelu byl opuštěn (moduly jsou ovšem stále ukládány jako součást sešitů XLS). Značně se tak zvýšila efektivita práce programátorů, protože staré nástroje se s pohodlím nového editoru nemohly srovnávat. Kupodivu, tento editor byl v českém Excelu 97 také přeložen do češtiny, zatímco v české verzi Excelu 2000 a novějších zůstal anglický.
V dalších verzích Excelu se již nic zásadního ned ě lo, samoz ř ejm ě každá verze p ř inesla pár novinek, obvykle souvis ejících s vylepšenými nebo novými funkcemi.
1.3 Základní údaje o zastaralém makrojazyku XLM
P ř estože v této knize se jazyk XLM u č it nebudete, vysv ě tlím stru č n ě , o co šlo. Makra v jazyku se zapisovala do zvláštních typ ů list ů (oficiáln ě se tento typ listu jmenuje Makro Microsoft Excel 4.0 ) jako posloupnosti volání jednotlivých funkcí.
V Excelu 97 a nov ě jších verzích již nelze makra v jazyku XLM nahrávat, již existující makra však m ů žete spoušt ě t nebo upravovat (listy s t ě mito makry se objeví p ř ímo v Excelu , není nutné spoušt ě t editor Visual Basicu ).
A pro č se tu o tomto jazyku v ů bec zmi ň uji? Inu, máte šanci – asi tak p ů l promile – na to, že se k vám n ě kdy sešit s makry napsanými v tomto jazyku dostane. Tak abyste nebyli p ř ekvapeni. Jak by takové makro vypadalo, vidíte na následujícím obrázku.
Obr. 1.1
Ukázka jednoduchého makra v jazyku XLM.
1.4 Typy list ů v sešitu a jejich vztah k programování
Celkem existuje p ě t typ ů list ů , které se v sešitu Excelu mohou objevit:
pracovní listy (angl. worksheets )
listy typu graf ( charts )
listy maker XLM (zastaralé, stále se však podporují)
listy dialog ů Microsoft Excel 5.0 (zastaralé, jsou však stále podporovány)
mezinárodní list maker (relikt z prastarých verzí Excelu; jeho význam je utajen již v nápov ě d ě k Excelu 95 )
Nejběžnějším typem listu je tzv. pracovní list . Tento list má v ětšina lidí na mysli, pokud mluví o tabulkách. Každý pracovní list Excelu 97 a vyšších verzí má 256 sloupc ů a 65 536 ř ádk ů (což je č ty ř násobek po č tu ř ádk ů , který byl k dispozici ve starších verzích).
S prvními dv ě ma typy list ů pracujete p ř ímo v sešitu. Makra jazyka VBA jsou ukládána výhradn ě v modulech, se kterými je možné pracovat jen v programovacím editoru.
Krom ě maker, která jsou složena jen z kódu, m ůžete naprogramovat i vlastní dialogová okna, tedy grafický prvek uživatelského rozhraní, který lze zobrazit p ř ímo nad pracovním listem Excelu . Ve starších verzích Excelu se tato dialogová okna vytvá ř ela na speciálních listech dialog ů . Nov ě jší verze (po č ínaje Excelem 97 ) sice stále tyto listy podporují, nabízejí však daleko lepší alternativu: formulá ř e UserForm