Jdi na obsah Jdi na menu
 


Microsoft Office Excel 2007 Programování ve VBA

13. 12. 2008

Autor recenze: Vladimír Hajdovský

Excel 2007 VBA

Přede mnou leží dvě knihy o nejrozšířenějším tabulkovém procesoru ve světě PC, o Microsoft Excelu. Autorem obou knih je jeden z nejuznávanějších znalců tohoto prostředí, John Walkenbach, který si už před lety vysloužil přezdívku Mr.Spreadsheet. Obě knihy se týkají malé revoluce ve světě Excelu, kterou se stal MS Excel 2007.

Dvě jsou ty knihy proto, že i MS Excel je světem o dvou tvářích. Ta první tvář je ono prostředí, které se nám otevře se zavoláním Excelu a které nám poskytne tabulkový prostor pro uložení dat a manipulaci s nimi. Druhou tváří Excelu je jeho vývojové prostředí s VBA, v němž můžeme nad tabulkovým prostorem Excelu vytvářet plnohodnotné aplikace i s velmi složitou vnitřní logikou a výpočtovou náročností. Zatímco tu první tvář musí zvládnout každý, kdo chce Excel používat, ta druhá zůstává pro drtivou většinu běžných uživatelů skrytá a neznámá. Přitom právě ona dělá z MS Excelu mimořádný nástroj, kterým se tento produkt vysoko tyčí nad svými konkurenty.

Oba manuály přede mnou mají v titulu předznamenáno „Microsoft Office Excel 2007“. J.Walkenbach výše zmíněnou dvoukolejnost MS Excelu v těchto manuálech ctí v tom smyslu, že titul „Vzorce a výpočty“ se věnuje převážně oné všeobecně známé straně Excelu. Titul „Programování ve VBA“ je zase převážné míře věnován vývoji programovaných aplikací. Překryv obou základních témat však není zanedbatelný. Ve Vzorcích a výpočtech je ze 700 stran textu věnováno celých 100 stran problematice VBA; v knize o programování se autor dostává k VBA až na straně 150 z celkových 900 stran textu.

O VBA se vlastně dozvíme už ve Vzorcích a výpočtech víc, než je uvedeno v ostatních manuálech o MS Excelu 2007, které jsou v současné době na našem trhu. Přesto se záběr tohoto textu omezuje na oblast uživatelsky definovaných funkcí listu, což je pouze úzký výsek „z nekonečného“ prostoru, který nám VBA otevírá. Kdo chce vážně toto vývojové prostředí využívat, jistě najde podstatně širší základnu znalostí v knize o programování.

Na začátku jsem se zmínil o Excelu 2007 jako o malé revoluci. MS Excel opravdu prolomil několik odvěkých bariér, jimiž začal být Excel stále více spoután ve svém rozletu. Výpočetní i paměťové možnosti moderního hardwaru k tomu otevřely cestu a Microsoft tohoto nového prostoru využil. Milion řádků a 16 tisíc sloupců na listu je obrovský kapacitní skok proti 65 tisícům řádků a 256 sloupcům. Přechodem do jiného světa barev je opuštění barevnice s 84 barvami v sešitu. Dlouhá řada rozšíření rozsahů proti dosavadním omezením vyvolala v mnohých veliké nadšení a vysoká očekávání. Půl druhého roku po uvedení Excelu 2007 na trh však stále přetrvává značný ostych uživatelů v přechodu na tuto platformu.

Jeho základní příčinou je zřejmě kompletně přepracované uživatelské rozhraní Excelu. Jde o novátorský čin, který si u uživatelské veřejnosti vysloužil velmi rozporuplné reakce. Stejně rozporuplný (ne-li více) je vztah k Excelu 2007 mezi vývojáři aplikací. Nikoliv proto, že by se vývojové prostředí jako takové měnilo; tam zůstalo vše při starém. Vývojáři se ale daleko spíš než standardní uživatelé setkají s faktem, že Excel 2007 vedle velkých rozšíření možností přinesl i řadu omezení proti předchozím verzím. Vytvoření uživatelského interface k aplikaci má náhle jiná pravidla a možnosti. Zjišťujeme, že není zaručena úplná kompatibilita zdola nahoru (aplikace, napsaná pro starší Excel, nemusí v Excelu 2007 fungovat). Standardní techniky je někdy nutno zaměnit novými postupy. Existují bohužel i oblasti, které nesou znaky chvatné a nedokončené práce ze strany vývojářů nové verze Excelu. Tyto jevy jsou pravděpodobně nejpatrnější právě v oblasti projekce a vývoje programovaných aplikací.

Poněkud těžko se vyrovnávám se skutečností, že autoři Excelu zaujali k VBA poněkud odtažitý postoj. Začíná to tím, že povolení maker je ještě komplikovanější než dřív a že je nutné pokaždé si přečíst zprávu typu „Kouření škodí zdraví“ o rizicích spojených s makry. Už to působí na uživatele negativně. Rozmístit výstražné tabulky místo snížení rizik je ovšem jistě levnější.

Pokud se chcete dostat do vývojového prostředí, musíte si nejdřív oživit kartu Vývojář. Kdo to neudělá, nikdy se o existenci něčeho takového v Excelu ani nedozví. Když si ovšem prostředí VBE otevřete, budete se najednou i v Excelu 2007 cítit jako doma. Jen se musíte připravit na to, že zejména nové možnosti Excelu budou místy ošetřeny řekněme nedbale a místy se budou kódy chovat trochu jinak, než dřív. Asi bude dobré např. varovat ctitele záznamníku maker, že ne každé vygenerované makro bude vykonávat to, co jsme dělali při jeho generování.

O to cennější je pro vývojáře Walkenbachův manuál pro Excel 2007 o programování. Nejde totiž o pouhý opis předchozích jeho manuálů na dané téma, jak s oblibou tvrdí někteří experti. Vzhledem k dost rozsáhlé dokumentační části v podobě ukázkových algoritmů byl jejich autor tyto algoritmy povinen i nově odladit (což zřejmě také učinil). A to i ty, které z pochopitelných důvodů převzal z předchozích děl. Při té příležitosti se potkal s řadou problémů, na jejichž existenci pak v komentářích upozorňuje. Jistě bych přivítal, kdyby tyto poznámky (které nakonec pro sebe pokládám za nejcennější součást manuálu) byly více zvýrazněny, možná ale nejsem úplně typickým čtenářem takových manuálů.

Nebudu zde rozepisovat, co samotný manuál o programování obsahuje. V tom směru dávám za pravdu těm, kteří „viní“ autora z opisování sama sebe. Rozsah diskutovaných témat se proti „Programování ve VBA 2000 a 2002“ prakticky nezměnil. Pro velkou část témat není ani mnoho co dodat. Přivítal bych ovšem např. výrazné rozšíření kapitol o kontingenčních tabulkách a spolupráci s externími databázemi. Tyto pasáže mají po mém soudu daleko větší potenciál, než jakou pozornost jim autor věnuje.

V novém manuálu však na druhé straně najdeme řadu pasáží, které jsou zcela nové a specifické právě pro Excel 2007. Kniha se nevěnuje nástrojům VSTO (ty bychom v ní hledali marně). Velkou pozornost ale doporučuji věnovat kapitolce 4 o novém konceptu souborů Excelu. Stěžejním novým tématem jsou kapitoly 22 a 23 o práci s pásem karet a s místními nabídkami, což je pro vývojáře úplně nový prostor, spojený s novým uživatelským rozhraním Excelu. Čtyřicet pět stran, věnovaných tomuto tématu svědčí o významu, který autor této tématice přikládá. Doproručuji přečíst si pozorně i pár odstavců k otázkám slučitelnosti, obsaženým v kapitola 26. Vzhledem k novému konceptu práce s barvami v Excelu 2007 je určitě užitečné pro jeho pochopení prostudovat i kapitolu 30 o práci s barvami.

Už jsem napsal, že bych přivítal větší zdůraznění odlišností Excelu 2007 od jeho předchůdců. S touto otázkou se poměrně lišácky manuál vyrovnává v kapitole 31 formou FAQ. Tam, kde nechce kritizovat přímo, klade si autor vhodné otázky tak, aby na ně mohl s čistým svědomím odpovědět podle pravdy. Třicet stránek otázek a odpovědí mu k tomu poskytuje dostatečný prostor.

Závěr: Walkenbachovy manuály o Excelu mám rád. Ke starším vydáním jsem si pořídil i to nejnovější. Možná jen dvacet procent textu se změnilo. Určitě by bylo levnější pořídit si rozdílový manuál. Nic takového jsem ale na trhu nepotkal.

Ty knížky zcela určitě nezhltám od první do poslední stránky jedním dechem. Mnohé z jejich obsahu se mi už dostalo hluboko pod kůži a jiné části se mne zatím vůbec nedotkly. Důležité ale je, že vím, kde hledat, až k tomu dojde. To se týká i toho, kde si myslím, že vím, a kde mne může nová verze Excelu vyvést z omylu. Pak bude nový manuál k nezaplacení. A pak je tu oněch pár úplně nových pasáží, které jsem vyjmenoval výše. V nich si dnes  říkám a ještě nějakou dobu to budu dělat. To je základ toho, proč jsem utratil tak hříšný peníz a proč toho vůbec nelituji.

 

Komentáře

Přidat komentář

Přehled komentářů

Zatím nebyl vložen žádný komentář
 

 

 

Z DALŠÍCH WEBŮ

REKLAMA