Tento tutoriál vám vysvetlí, ako vytvárať funkcie definované používateľom vo VBA.
VBA sa skladá z čiastkových a funkčných postupov. Procedúry funkcií vracajú hodnotu a je ich možné vyvolať čiastkovými procedúrami alebo ich možno použiť v hárku programu Excel, kde sa hodnota, ktorú funkcia vytvára, vráti do listu programu Excel. Excel má samozrejme množstvo vstavaných funkcií - napríklad funkciu Sum alebo If. Procedúry funkcií, ktoré píšete vo VBA, sa používajú podobným spôsobom ako vstavaná funkcia a sú známe ako funkcie definované používateľom (UDF).
Prečo vytvoriť UDF?
Chýba požadovaná funkcia
Jedným z hlavných dôvodov, prečo chcete vytvoriť UDF v programe Excel, je to, že neexistuje žiadna vstavaná funkcia, ktorá by túto úlohu vykonala za vás. Napísanie vlastnej funkcie vo VBA je zvyčajne najefektívnejším spôsobom riešenia problému. Nasledujúca funkcia prevedie hodnotu z kilogramov na libry, kde sa na výpočet hodnoty v kilogramoch používa variabilný parameter (dblKilo).
Nahradiť čiastkový postup (makro)
Na vyriešenie úlohy za vás môžete napísať čiastkový postup (makro) - čiastkové postupy však nevracajú hodnotu a nie sú dynamické - inými slovami, ak sa hodnoty v pracovnom hárku zmenia, budete musieť znova spustiť makro, aby výpočty v makre aktualizovali vaše údaje. Nižšie uvedený čiastkový postup by tiež konvertoval naše kilogramy na libry, ale pri každej zmene údajov v A1 budete na aktualizáciu výsledku musieť znova spustiť makro.
Vymeňte vzorec
V programe Excel môžete mať skutočne komplikovaný vzorec, ktorý musíte používať opakovane - vloženie vzorca do kódu VBA uľahčuje jeho čítanie a porozumenie - a tiež možno odstráni priestor pre chyby používateľov pri zadávaní vzorca.
Vytváranie UDF
Ak chcete vytvoriť UDF, najskôr pridajte modul do zošita programu Excel alebo, ak máte zošit osobného makra, môžete buď použiť existujúci modul, alebo pridať nový. Ak to chcete urobiť, musíte byť v editore jazyka Visual Basic (VBE). Na VBE sa dostanete stlačením ALT + F11 alebo kliknite na Možnosti jazyka na karte Vývojár na páse s nástrojmi.
TIP:: Ak na páse s nástrojmi nemáte povolenú kartu Vývojár, prejdite na Súbor, Možnosti a kliknite na Prispôsobte stuhu. Uistite sa, že je začiarknuté políčko Vývojár a kliknite na tlačidlo OK.
Ak chcete vložiť nový modul, vyberte projekt VBA, do ktorého chcete modul vložiť (buď projekt VBA pre aktuálnu knihu, v ktorej pracujete, alebo osobný zošit makra), kliknite na Vložiť Ponuka a kliknite na Modul
Po vytvorení modulu môžete začať vytvárať UDF.
Všetky UDF začínajú funkciou a potom názvom UDF. Funkcie môžu byť súkromné alebo verejné, ale zvyčajne by ste chceli, aby bol UDF verejný, aby sa zobrazoval v dialógovom okne Vložiť funkciu v programe Excel (pozrite sa na používanie funkcie z listu programu Excel ďalej v tomto článku). Ak pred funkciu nestlačíte kľúčové slovo Private, bude funkcia automaticky verejná.
123 | Funkcia TestFunction1 (intA ako celé číslo) ako celé čísloTestFunction1 = intA * 7Koncová funkcia |
Vyššie uvedená funkcia má jeden argument (intA). Môžete vytvoriť funkciu s viacerými argumentmi
123 | Funkcia TestFunction2 (intA As Integer, intB As Integer, intC As Integer) As IntegerTestFunction2 = (intA * intB) + intCKoncová funkcia |
Môžete tiež vytvoriť funkciu s voliteľnými argumentmi. Ak je argument vynechaný, môžete vo funkcii nastaviť predvolenú hodnotu pre argument.
123 | Funkcia TestFunction3 (intA ako celé číslo, intB ako celé číslo, voliteľné intC ako celé číslo = 10) ako celé čísloTestFunction3 = (intA * intB) + intCKoncová funkcia |
Použitie funkcie z hárka programu Excel
Funkcie, ktoré ste vytvorili, sa predvolene zobrazia vo vašom zozname funkcií v sekcii funkcií definovanej používateľom.
Klikni na fx zobrazíte dialógové okno Vložiť funkciu.
Vyberte Definované užívateľom zo zoznamu kategórií
Z dostupných funkcií vyberte požadovanú funkciu Užívateľom definované funkcie.
Prípadne, keď začnete písať svoju funkciu v programe Excel, mala by sa objaviť v rozbaľovacom zozname funkcií.
Ukladanie funkcií pomocou súboru programu Excel
Pretože sú funkcie zapísané v kóde VBA, je logické, že kód musí byť k dispozícii v zošite, aby bol dostupný na použitie v hárku programu Excel. Svoje funkcie si môžete uložiť do zošita, v ktorom ich používate, alebo ich môžete uložiť do zošita Osobné makro. Váš osobný zošit makra je skrytý súbor, ktorý je k dispozícii vždy, keď je otvorený program Excel, a preto je k dispozícii na použitie akýmkoľvek zošitom v programe Excel. Normálne sa vytvorí, keď zaznamenáte makro a vyberiete možnosť uloženia makra do osobného zošita makra.
Ak si želáte, aby boli vaše funkcie uložené v zošite, na ktorom pracujete, budete musieť zaistiť, aby bol zošit pri uložení uložený ako „Zošit s povolením makra‘Alebo an xlsm súbor.