Jste zde: Úvodní stránka » excel » vba » excel-vba-jak-na-aplikace
VBA Excel – jak na aplikace
Doplňované postřehy s psaní aplikací v Excel VBA
Úvodem
V tomto článku jsou shrnuty postřehy, které jsem načerpal při psaní VBA kódu. Třeba se Vám budou hodit, při vytváření nových aplikací, nebo budete-li hledat chybu nebo se rozmýšlet jak na novou aplikaci (program) ve VBA.
1) Správná struktura a návrh
Tato vlastnost je velice opomíjená. Prostě se začne něco programovat, což může chvíli fungovat, ale po čase se zjistí, že místo 5 osob potřebujeme analyzovat jich 7, ale již na listě nemáme prostor, jelikož další sloupce zabírají jiné údaje případně už z tohoto listu „čerpá“ jiný aplikace (program). Úprava nevhodně navrženého listu posléze zabere více práce, než pokud by se v úvodu sešlo několik osob a pohovořili o tom, co od budoucí aplikace očekávají.
Co si tedy rozmyslet
Mít v listech nějakou logiku.
Doporučují mít viditelné a neviditelné listy (heslování a zamykání nechávám na každém), osobně hesla nepoužívám. Použití direktivy xlSheetVeryHidden je dostatečné. Kdo tento list dokáže zobrazit, dokáže i rozlousknout heslo (strejda google ochotně poradí).
Například vhodná struktura aplikace:
- Viditelné listy
- Úvodní list – obsahuje název, nějaké menu
- Vstupní list – kde bude uživatel zadávat nějaká data
- Výstupní list – kde uživatel obdrží výpočty
- Neviditelné listy
- List s nastavením aplikace (jazyková verze, platnost, ...)
- List s výpočty
- Pomocný list
2) Grafika
Design prodává.
Jak má vypadat graficky aplikace je na samostatný článek, alespoň pár postřehů.
Moje doporučení
Vypnout zobrazování mřížky a poté navrhovat aplikaci.
Nastavit černobílý tisk (ať se šetří toner, když někdo dá tisk)
Omezit tisknutelnou oblast (tisk jednoho listu oproti několika desítkám). Přeci jen často jsou tiskárny centralizované a uživatel stiskne tisk a zapomene omezit počet listů.
Neslučovat buňky
Neslučovat buňky v listech ve kterých se používají VBA výpočty. Osobně toto pravidlo obcházím tak, že výpočty a vše provádím na nesloučených buňkách a do listu, kde jde o grafickou podobu tam již buňky sloučené mám.
Pokud pokládáte otázku proč neslučovat. Odpověď je jednoduchá, pokud se odkazuje na další buňky, tvoříte grafy, způsobuje to problémy. SUMA se sčítá vícekrát, grafy jsou nespojité, atd.
Takže hlavně neslučovat buňky. Ušetříte si zpoustu problému.
3) Práce s listy
Doporučeno je tvořit vzorce zleva doprava a shora dolů.
Osobně někdy toto pravidlo nedodržují a sumu umístím do záhlaví (tj. data jsou pod sumou). Výhodou je že po spuštění mám přehled (například o celkových výdajích aniž bych musel listovat dolů na poslední řádek.
4) Vzorce
Osobně se mi osvědčilo netvořit velké vzorce. Sice to není pro Excel problém, ale velice dlouhý vzorec je pro mě nepřehledný. Raději výpočet provede na několik kroků.
5) Komentáře v kódu VBA
Psaní komentářů je neocenitelné. Většinou zjistíte po delším čase, kdy se k aplikaci vrátíte. Po roce otevřete program a marně budete vzpomínat, co tak konstrukce dělá. Popis funkce příkazu If then je zbytečný, ale co je jeho cílem už ne.
6) Datum a čas
Další problém je Excel a jeho práce s časem a datem 11/1/2011 představuje 1. listopad 2011, 1/11/2011 je 11. Leden 2011, ale 13/1/2011 a 1/13/2011 je 13. Ledna 2011. Takže doporučuji používat DateSerial. Kde je jasné, co je rok, měsíc a den. Nenechat to na Excelu ať odhaduje a myslí za uživatele nedoporučuji. Lze použít jednoduše +1 například u měsíce.
7) Vypínaní zobrazování chybových hlášek
Další problematická záležitost. Člověk je zapomene zapnout skript nefunguje a přitom Excel nic nehlasí.
8) Zaokrouhlování v Excelu
Další nepříjemná vlastnost například u cyklů při počítání s malými čísly. U čítačů ochranná funkce.
9) Vlastní pole
Pozor pole v Excelu jsou počítána od nuly, pokud nic neuvedete. Nepoužívejte Option Base 1. Sice se Vám bude zdát, že počítání od jedné je logičtější, ale přinese to problémy. Pokud část kódu přenesete a zapomenete, zapnout chybu budete hledat dlouho, hodně dlouho. Raději deklarujte Dim MojePole (1 To 8) As Double
10) Odčítat od poslední buňky
Dobrým nápadem, jež jsem nalezl na internetu, je hledat poslední řádek od konce tabulky.
11) Existuje objekt
Nejprve zkontrolovat.
Příklad: Pokud otvíráte nový sešit, zkontrolujte, zda existuje. Opět předejdete problémům.
12) Otestujte výchozí vlastnost objektu
Opět se může stát, že objekt má nastavenou jinou výchozí vlastnost než předpokládate.
13) Cykly s ochranným čítačem
Jak už jsem psal Excel „zaokrouhluje“ proto při tvorbě čítačů je vhodné jej doplnit o ochranu. i = i + 0,0001
14) Jednotný popis prvku
Ujednotit si popis konstant proměnných ovládacích prvků. TextBox1, TextBox2 moc toho neřeknou, ale TxBoxJmeno, TxBoxPrijmeni už řekne. V popisu doporučuji nepoužívat diakritiku.
Závěrem
V komentářích můžete uvést své poznatky s psaním VBA kódu. Na co si dávat pozor, atd.
Článek byl aktualizován: 04.03.2012 19:39
Další články k tématu
- VBA makra - úvod
- Co je VBA
- Druhy aplikaci v Excelu
- Pojmenovávání v aplikacích
- Prostředí editoru VBA
- Ladící okno - immediate - Debug.print
- Lišta Edit (úpravy) - programovací okno VBA
- Komentáře v kódu VBA
- VBA Formuláře UserForm - seznam článků
- Práce se soubory - seznam článku
- Jak na aplikace ve VBA Excel - právě čtete
- Vlastnosti, Metody, Události, Kolekce
- Události - úvod
- Odebrání hypertexového odkazu
- Vložení vzorce do komentáře
- Přiřazení maker tlačítkům - Excel 2007
- Zobrazení dialogu
- Msg box - dialogové okno
Komentáře zatím nejsou
Můžete být prvními co zanechají smysluplný komentář.
Přidání nového komentáře
Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu.
Nejnovější článek
Z článku o
excel jsem jako poslední přidal či upravil článek
14.05.2012:
Kombinování funkcí - vzorců.
Nejčtenější článek
Excel
- Základy MS Excel
- menu Soubor
- Formát dat
- Vložit
- Grafy
- Vzorce (Funkce)
- Matice
- Data
- Revize (Nástroje)
- VBA Úvod a seznamy článků
- VBA makra - úvod
- Co je VBA
- Druhy aplikaci v Excelu
- Pojmenovávání v aplikacích
- Prostředí editoru VBA
- Ladící okno - immediate - Debug.print
- Lišta Edit (úpravy) - programovací okno VBA
- Komentáře v kódu VBA
- VBA Formuláře UserForm - seznam článků
- Práce se soubory - seznam článku
- Jak na aplikace ve VBA Excel
- Vlastnosti, Metody, Události, Kolekce
- Události - úvod
- Odebrání hypertexového odkazu
- Vložení vzorce do komentáře
- Přiřazení maker tlačítkům - Excel 2007
- Zobrazení dialogu
- Msg box - dialogové okno
- VBA Teorie základy
- VBA Buňky cell
- VBA Listy sheet
- VBA Práce se soubory
- VBA Formuláře (UserForm)
- VBA Grafy
- VBA Application
- VBA Pás karet, Menu
- VBA Triky
- VBA praktické příklady kódu
- Praktické příklady
- Finanční poradce
- Šablony - Templates
- Testy
- Ostatní
Google+
Novinky
Matematické rovnice (vzorce) - Word 2010
Excel: 14.05.2012:
Kombinování funkcí - vzorců
Access: 28.04.2012:
VBA - Jak spustit v MS Access
Power Point: 25.04.2012:
SmartArt - PowerPoint 2010
Outlook 26.04.2012:
Outlook 2010 - jak vypadá
Project: 05.04.2012:
Kalendář ukázka
OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky
Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office
Poděkování
Translate
Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková |
1269
Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.