Publikoval Michal Kočí dňa 1.2.2006 o 23:52 v kategórii Office
Niekedy sa až čudujem, koľko času mi niekedy zaberie nájdenie riešenia úplnej triviality. Potreba vo VBA kóde v Exceli vypočítať mocninu čísla sa zo začiatku zdala jednoduchá. Asi po polhodine googlenia a dramaticky zhoršenej moje nálady som skúsil hľadať riešenie priamo na MSDN a až to mi prinieslo odpoveď, zase na moje prekvapenie nečakane rýchlo.
Keď som priamo vo VBA nenašiel očakávanú funkciu Power, dovtípil som sa, že musím nejakým spôsobom zavolať funkciu Power dostupnú priamo v Exceli. Čo bolo nahoršie, matne som si pamätal, že približne pred týždňom, kedy som bol tiež prinútený niečo malé naprogramovať vo VBA som našiel článok, kde bolo presne toto demonštrované.
Jasné, nie je nič jednoduchšie, ako sa spýtať Google, rýchlo nájsť požadované riešnie a použiť ho. Alebo som mal dnes ozaj zlý deň, alebo mi Google úmyselne hádzal polienka pod nohy, no ani po pol hodine som sa k riešeniu nedostal. Našiel som haldu stránok, popisujúcim čo funkcia Power robí, ako ju použiť v Exceli (nie vo VBA), prípadne ako si vo VBA naprogramovať vlastnú funkciu.
Keďže som sa na Google samozrejme právom urazil, skúsil som zašmátrať hlbšie v pamäti. Pamätal som si, že sak metódam dalo dostať cez nejaký objekt, respektíve cez nejakú jeho vlastnosť. Takže som prehladal objekty Application, Worksheet aj Workbook, ale úspech sa stále nedostavoval. To že mi bolo skoro do plaču, nemusím asi zdôrazňovať, ak by som bol o trochu citlivejšia povaha, tak rovno zavesím programovanie na klinec.
Riešenie som vzápätí našiel pri zadaní tretieho dotazu do MSDN. Keď som ho zbadal, skoro ma vystrelo, pretože som sa okolo neho docela motal. Veľká množina Excelových funkcií je prístupná cez objekt WorksheetFunction. A je to. čo ma mrzí je, že hľadaním tejto triviality som zabil viac času, než naprogramovaním funkcie, ktorá vypočíta RPMN (toto bolo potrebné, pretože zákon, ktorý klamal ľudí sa zmenil). Navyše, keby analytické nástroje boli v štandardnej inštalácii Excelu a nie ako doplnok, na výpočet RPMN by sa dala použiť priamo funkcie XIRR. Keďže to tak nie je, musel som ju naprogramovať "nanovo", aby kalkulačka fungovala vo všetkých inštaláciách Excelu.
Dôsledok dnešného pátrania: Za prvé, keď budem hľadať nejakú metódu, budem prioritne hľadať v MSDN. A za druhé, keď budem hľadať ako zavolať Excelovú funkciu z VBA, riešenie si pozriem v tomto mojom príspevku.
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.