Vytváření (vlastních) uživatelem definovaných funkcí (UDF)

Tento tutoriál vysvětlí, jak ve VBA vytvářet funkce definované uživatelem.

VBA se skládá z dílčích postupů a funkčních postupů. Procedury funkcí vracejí hodnotu a mohou být volány dílčími procedurami, nebo mohou být použity v listu aplikace Excel, kde je hodnota, kterou funkce vytváří, vrácena do listu aplikace Excel. Excel má samozřejmě řadu předdefinovaných funkcí - například funkci Sum nebo If. Funkční procedury, které píšete ve VBA, se používají podobným způsobem jako vestavěná funkce a jsou známé jako funkce definované uživatelem (UDF).

Proč vytvořit UDF?

Chybí požadovaná funkce

Jedním z hlavních důvodů, proč chcete vytvořit UDF v aplikaci Excel, je, že neexistuje žádná vestavěná funkce, která by tento úkol splnila za vás. Psaní vlastní funkce ve VBA je obvykle nejúčinnějším způsobem, jak vyřešit problém. Níže uvedená funkce převede hodnotu z kilogramů na libry, kde se k získání hodnoty kilogramů za účelem výpočtu použije proměnný parametr (dblKilo).

Nahradit dílčí rutinu (makro)

Můžete napsat dílčí proceduru (makro), která vyřeší úkol za vás - ale dílčí procedury nevracejí hodnotu a nejsou dynamické - jinými slovy, pokud se hodnoty v listu změní, budete muset znovu spustit makro, aby výpočty v makru aktualizovaly vaše data. Níže uvedený dílčí postup by také převedl naše kila na libry, ale pokaždé, když se data změní v A1, budete muset makro znovu spustit a aktualizovat výsledek.

Vyměňte vzorec

V aplikaci Excel můžete mít opravdu komplikovaný vzorec, který musíte použít opakovaně - vložení vzorce do kódu VBA usnadňuje jeho čtení a porozumění - a možná také odstranění prostoru pro chyby uživatelů při psaní vzorce.

Vytváření UDF

Chcete -li vytvořit UDF, nejprve přidejte modul do sešitu aplikace Excel nebo, pokud máte sešit osobního makra, můžete buď použít existující modul, nebo přidat nový. Chcete -li to provést, musíte být v editoru jazyka Visual Basic (VBE). Do VBE se dostanete stisknutím ALT + F11 nebo klikněte na Možnosti jazyka na kartě Vývojář na pásu karet.

SPROPITNÉ: Pokud na pásu karet nemáte povolenou kartu Vývojář, přejděte na Soubor, Možnosti a klikněte na Přizpůsobte stuhu. Ujistěte se, že je zaškrtnuto políčko Vývojář, a klikněte na OK.

Chcete -li vložit nový modul, vyberte projekt VBA, do kterého chcete modul vložit (buď projekt VBA pro aktuální knihu, ve které pracujete, nebo osobní sešit maker), klikněte na Vložit Nabídka a klikněte na Modul

Jakmile vytvoříte modul, můžete začít vytvářet UDF.

Všechny UDF začínají funkcí a poté názvem UDF. Funkce mohou být soukromé nebo veřejné, ale obvykle byste chtěli, aby byl UDF veřejný, aby se zobrazovaly v dialogovém okně Vložit funkci v aplikaci Excel (viz použití funkce z listu aplikace Excel dále v tomto článku). Pokud před funkci nedáte klíčové slovo Private, bude funkce automaticky veřejná.

123 Funkce TestFunction1 (intA jako celé číslo) jako celé čísloTestFunction1 = intA * 7Koncová funkce

Výše uvedená funkce má jeden argument (intA). Můžete vytvořit funkci s více argumenty

123 Funkce TestFunction2 (intA jako celé číslo, intB jako celé číslo, intC jako celé číslo) jako celé čísloTestFunction2 = (intA * intB) + intCKoncová funkce

Můžete také vytvořit funkci s volitelnými argumenty. Pokud je argument vynechán, můžete ve funkci nastavit výchozí hodnotu pro argument.

123 Funkce TestFunction3 (intA jako celé číslo, intB jako celé číslo, volitelné intC jako celé číslo = 10) jako celé čísloTestFunction3 = (intA * intB) + intCKoncová funkce

Použití funkce z listu aplikace Excel

Funkce, které jste vytvořili, se ve výchozím nastavení zobrazí ve vašem seznamu funkcí v části Funkce definované uživatelem v seznamu funkcí.

Klikněte na fx k zobrazení dialogového okna Vložit funkci.

Vybrat Definováno uživatelem ze seznamu kategorií

Vyberte z dostupných funkcí požadovanou funkci Uživatelem definované funkce.

Alternativně, když začnete psát svou funkci v aplikaci Excel, funkce by se měla objevit v rozevíracím seznamu funkcí.

Uložení funkcí pomocí souboru aplikace Excel

Protože jsou funkce zapsány v kódu VBA, je logické, že kód musí být k dispozici v sešitu, aby byl k dispozici pro použití v listu aplikace Excel. Své funkce můžete uložit do sešitu, ve kterém je používáte, nebo je můžete uložit do sešitu osobního makra. Váš osobní sešit maker je skrytý soubor, který je k dispozici vždy, když je otevřený Excel, a je tedy k dispozici pro jakýkoli sešit v Excelu k použití. Obvykle se vytvoří, když zaznamenáte makro a vyberete možnost uložit makro do osobního sešitu maker.

Pokud si přejete zachovat své funkce uložené v sešitu, na kterém pracujete, budete se muset ujistit, že když sešit uložíte, bude uložen jako „Sešit povolený v makru‘Nebo xlsm soubor.

wave wave wave wave wave