Přeskočit navigaci | Přeskočit na novinky

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



| tisk stránky TISK | nahoru NAHORU |
| |

Další články k tématu




Komentáře zatím nejsou

Můžete být prvními co zanechají smysluplný komentář.


Přidání nového komentáře




(vlož číslo šest)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky a URL. Děkuji za pochopení.
Děkuji, za Vaše 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




Google+

  

Facebook

facebook  

Novinky

Word: 12.5.2012:
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í

Poděkování patří hlavně mojí nejbáječnější manželce.

LinkedIN

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.