Tipy Triky Návody
Příspěvky
Office 2010 Application Compatibility Program
23. 10. 2009
Na blogu Gray Mattera se včera objevilo oznámení o novém nástroji pro konverzi VBA projektů do nové verze Office 2010. "Office 2010 Compatibility Program" - jak je tento projekt nazván - je rozdělen na dva samostatné nástroje.
LoadPicture do Image control na listu
25. 8. 2009
Dnes jsem potřeboval pracovat s prvkem "Image" z panelu ovládacích prvků přímo na pracovním listu. Standardně jsem vložil nový Image controls na list a pln elánu jsem se vrhnul do psaní kodu, který automaticky nahraje obrázek do tohoto prvku. Jaké bylo mé překvapení, když jsem zjistil, že tak rychle jak sem si to představoval to nebude. A proto vznikl tento příspěvek, abych někomu dalšímu ušetřil námahu, ale hlavně abych, když to budu potřebovat, našel i já rychle odpověď.
Není vzorec jako vzorec....
31. 5. 2009
Autor: Ing. Vladimír Hajdovský
Aktualizováno 9.února 2010: Autor článku přidal přílohu viz. konec článku
Vzorce na pracovních listech tabulkových procesorů jsou základním prostředkem pro vyjádření vztahů mezi jednotlivými buňkami na nich. Vzorec na listu zásadně a vždy určuje hodnotu své hostitelské buňky; nikdy nemůže aktivně změnit hodnotu v jiné buňce.
GoTo - opravdu je tak hruzostrašný ...
28. 5. 2009
Už od mých prvních programatorských kroků mě ve všech knihách o VBA provázel strašák jménem GoTo. Ve všech knihách ve kterých jsem se pozvolna dovídal více a více o VBA, byl tento příkaz zatracován a považován za přežitek z 80 let, který výrazně zhoršuje čitelnost kódu. A není tedy divu, že se můj přístup k tomuto příkazu omezil pouze na konstrukci On Error Goto navěstí a nechápal jsem, když jsem příkaz GoTo viděl v kódu. jiného programátora.( cožpak ten člověk nečetl všechny tyhle knihy ? )
Call Stack – Hidden code
14. 1. 2009
Při práci na větších projektech používám s výhodou komponentu Call Stack. Už jsem si zvyknul na text "[<Non-Basic Code>]", který jak předpokládam, je volán z jádra aplikace při otevírání sešitů, provádění události apod. Vzhledem k tomu, že office aplikace jsou napsány v jazyku "C", bude to zřejmě tento kód, který je vyvolán aby obstaral vše potřebné,
ADODB – paměťová náročnost
11. 1. 2009
Při řešení úlohy filtrující záznamy ve více sloupcích s více kriterii jsem
narazil na omezení ( neefektivnost ) automatického filtru ( musel bych ho použít
vícekrát ) a složitost zápisu podmínek u rozšířeného filtru - podmínky typu
AND a OR u jednoho sloupce s kombinaci stejných podmínek v dalších sloupců se
podmínky rošířeného filtru dostaly do obludných rozměrů
Efektivní odstranění řádků - jaký zvolit přístup
21. 10. 2008
Na webu excelplus.net se objevil dotaz na efektivním odstranění řádku dle číselníku na jiném listě. (V tomto odkazu naleznete sešit s všemi ukázkami kódu níže) Zaujalo mě hlavně slovíčko efektivně. Již sem se chtěl rozepsat o cyklu přes všechny řádky a kontrole hodnot s číselníkem, ale rozhodl jsem se prověřit také další možnosti a nevyužil jsem zdaleka všechny.
Nepovolené znaky
2. 8. 2008
Dnes jsem potřeboval napsat kód na odstranění nepovolených znaků z předaného řetězce který měl sloužit pro pojmenování listů. Jak asi víte max. délka znaků pro pojmenování listu je 31 a zároveň nemůže být název listu prázdný. Nepovolené znaky pro pojmenování listů v Excelu jsou - „ : \ / ? * [ ] ' “
Jelikož jsem na webu nenašel přesně to co bych potřeboval, napsal jsem si vlastní funkci, která zvládá veškeré požadavky na správné a korektní pojmenování listu. Zvažoval jsem, že dopíšu kontrolu na stejný název listu v sešitě kde se list přejmenovává, ale jelikož jsem zrovna tuhle nefunkčnost nepožadoval, tak sem ji záměrně vynechal.
Včasné a pozdní vázání ve VBA
7. 2. 2008
O co jde
Tento poněkud zvláštní název vznikl z anglického Early & Late Binding a znamená, jakým způsobem se můžeme připojovat a tím pádem i ovládat jinou aplikaci/objekt z VBA. Bývá často ne moc dobře pochopeno a někdy není úplně jasné, jak co nejlépe vytvořit instanci aplikace, kterou chceme ovládat.
Jediná věc, která ovlivňuje, jestli bude objekt včasně nebo pozdně vázán, je jeho deklarace.
Proměnné, které jsou deklarované jako specifický datový objekt, jsou vždy včasně vázány.
Proměnné, které jsou deklarované pomocí příkazu Object nebo Variant, jsou vždy pozdně vázány.
Pravidla programátora VBA
26. 12. 2007
VBA Code Golden Rules