Vytvoření vlastních funkcí v Excelu

Poznámka: Snažíme se pro vás co nejrychleji zajistit aktuální obsah nápovědy ve vašem jazyce. Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát ve spodní části této stránky vědět, jestli vám informace v článku pomohly? Pokud byste se rádi podívali na jeho anglickou verzi, najdete ji tady.

I když Excel obsahuje velké množství předdefinovaných funkcí, dost možná je, že neobsahuje funkci pro všechny typy výpočtů, které můžete provádět. Návrháři Excel nelze předpokládá případně každý uživatel výpočtu potřeb. Místo toho Excel nabídne možnost vytvořit vlastní funkce, které jsou vysvětleny v tomto článku.

Počet vlastních funkcí, jako jsou makra, použijte programovacím jazykem Visual Basic for Applications (VBA). Se liší od makra významné dvěma způsoby. Nejdřív používají funkci postupy místo Sub postupy. To znamená na začátku jsou příkaz funkce namísto příkazu Sub a end pomocí Funkce koncové namísto End Sub. Za druhé jejich provádění výpočtů místo provedením akcí. Některé typy výkazech, například příkazy, které vybrání a formátování oblastí, se nevynechávají počet vlastních funkcí. V tomto článku se dozvíte, jak vytvořit a používat vlastní funkce. Pokud chcete vytvořit funkcí a makra, pracujete s Visual Basic Editor (VBE), který se otevře v novém okně samostatné z aplikace Excel.

Předpokládejme, že vaše společnost nabízí množství sleva 10 % na prodejní product podle pořadí je určený pro víc než 100 jednotek. V následujících odstavcích jsme budete demonstrují funkce k výpočtu tato sleva.

Následující příklad ukazuje formuláři objednávky, který obsahuje jednotlivé položky, množství, cena, diskont_sazba (pokud existuje) a výsledná rozšířená cena.

Formulář objednávky příklad bez vlastní funkce

Pokud chcete vytvořit vlastní funkce DISKONTNÍ v tomto sešitu, postupujte takto:

  1. Stisknutím klávesy Alt + F11 slouží k otevření editoru jazyka Visual Basic (na Mac, stiskněte FN + ALT + F11 ) a potom klikněte na Vložení > Module. Zobrazí se nové okno modul na pravé straně editoru jazyka Visual Basic.

  2. Zkopírujte a vložte následující kód do nového modulu.

    Function DISCOUNT(quantity, price)
    If quantity >=100 Then
    DISCOUNT = quantity * price * 0.1
    Else
    DISCOUNT = 0
    End If

    DISCOUNT = Application.Round(Discount, 2)
    End Function

Poznámka: Aby byl čitelnější kódu, můžete pomocí klávesy Tab odsadí řádky. Odsazení je pouze ve svůj prospěch a vynechán, jak kód se spustí s nebo bez nich. Po zadání odsazeném řádku editoru jazyka Visual Basic předpokládá, že bude vaše další řádek podobně odsazené. Chcete-li přesunout (to znamená, vlevo) jeden tabulátorem, stiskněte Shift + Tab.

Teď si budete chtít použít novou funkci sleva. Zavřete Visual Basic Editor, vyberte buňku G7 a zadejte tento příkaz:

=DISCOUNT(D7,E7)

Excel vypočítá 10 % slevu na 200 jednotkách 47.50 za jednotku a vrátí $950.00.

V prvním řádku kód jazyka VBA, funkce DISCOUNT(quantity, price) označili jste, že funkce DISKONTNÍ vyžaduje dva argumenty, počet a cena. Když funkce volat v buňce na listu, musí obsahovat tyto dva argumenty. Vzorec = DISCOUNT(D7,E7), D7 je počet argumentů a E7 je argument cena . Teď můžete DISKONTNÍ vzorec zkopírujete do G8:G13 k získání výsledků ukázáno v následujícím příkladu.

Dále se podívejme interpretace tento postup (funkce). Po stisknutí klávesy Enter se vyhledá názvu slevy v aktuálním sešitu aplikace Excel a zjistí, že vlastní funkci v modulu VBA. Názvy argumentů uzavřeno do závorek, počet a cenajsou zástupné symboly pro hodnoty, na které je založen výpočet sleva.

Formulář objednávky příklad vlastních funkcí

-Li následný výběr v následující blok kód zkontroluje argument množství a určuje, zda počet prodaných položek je větší než nebo rovno 100:

If quantity >= 100 Then
DISCOUNT = quantity * price * 0.1
Else
DISCOUNT = 0
End If

Pokud počet prodaných položek je větší než nebo rovno 100, VBA provede následující příkaz, který vynásobí hodnotu množství hodnotou cena a potom výsledek vynásobí 0,1:

Discount = quantity * price * 0.1

Výsledek je uložen jako proměnná Sleva. Výraz jazyka VBA, který ukládá hodnotu do proměnné se nazývá příkazu přiřazení , protože vyhodnotí výraz na pravé straně znaménku rovná se a přiřadí výsledek proměnná název na levé straně. Protože proměnnou slevy má stejný název jako procedura function, bude vrácena hodnota uložená v proměnné na vzorec v listu s názvem funkci sleva.

Pokud je menší než 100 množství VBA provede následující příkaz:

Discount = 0

Nakonec následující příkaz Zaokrouhlí hodnotu přiřazená proměnnou slevy na dvě desetinná místa:

Discount = Application.Round(Discount, 2)

Jazyk VBA obsahuje žádná funkce ZAOKROUHLIT, ale aplikace Excel nepodporuje. Proto používat zaokrouhlit v tomto prohlášení, řekněte VBA můžete vyhledávat metodu ZAOKROUHLIT (funkce) v aplikaci objektu (Excel). To uděláte přidáním word aplikace před tímto slovem zaokrouhlit. Pomocí následující syntaxe pokaždé, když potřebujete získat přístup k funkce aplikace Excel z modulu VBA.

Vlastní funkce musí začínat příkazu funkce a na konci příkazu ukončení funkce. Kromě názvu funkce určuje příkazu funkce obvykle jeden nebo více argumentů. Můžete však vytvořit funkci bez argumentů. Aplikace Excel obsahuje několik předdefinovaných funkcí – funkce NÁHČÍSLO a nyní, například –, nepoužívejte argumenty.

Procedura function po provedení příkazu funkce, obsahuje jeden nebo více příkazy jazyka VBA, které rozhodovat a provádění výpočtů pomocí argumentů předán funkci. Nakonec jinam, postupujte v procedura function je nutné zadat výraz, který přiřadí hodnotu do proměnné se stejným názvem jako funkce. Tato hodnota je vrácena vzorec, který volá funkci.

Počet klíčová slova jazyka VBA můžete použít v počet vlastních funkcí je menší než číslo můžete použít v makra. Počet vlastních funkcí nejsou povolené můžete libovolně než vrátit hodnotu vzorec v listu, nebo výraz použitý v jiném makra VBA nebo funkce. Počet vlastních funkcí nelze například změnit velikost windows, upravte vzorec v buňce nebo změna písma, barvy nebo vzorku možnosti pro text v buňce. Jestliže zahrnete do procedura function kódu "akce" tohoto typu, vrátí funkce #VALUE! došlo k chybě.

Jeden akci, kterou procedura function umí (s výjimkou provádění výpočtů) se zobrazí dialogové okno. Můžete použít příkaz InputBox ve vlastní funkci jako prostředek k získání vstupní uživateli provádění funkce. Výkaz MsgBox můžete použít jako prostředek předávání informací pro uživatele. Můžete také použít vlastní dialogových oknech nebo uživatelské formuláře, ale, předmět nad rámec tomto úvodu.

I jednoduché makra a počet vlastních funkcí může být obtížné ke čtení. Můžete je provedete srozumitelnější zadáním vysvětlující text ve formě komentáře. Přidávat komentáře tak, že před vysvětlující text s apostrof. Například následující příklad ukazuje funkci DISKONTNÍ s poznámkami. Přidání komentářů tyto usnadňuje vy nebo jiní uživatelé ke správě kód jazyka VBA po uplynutí určitého času. Pokud potřebujete změnit kód v budoucnu, budete mít jednodušší čas Principy akce původně.

Příklad funkce jazyka VBA s komentáři

Apostrof říká Excel ignorovat všechny položky napravo na stejném řádku, abyste mohli vytvořit komentáře buď na řádcích samostatně nebo na pravé straně řádky, které obsahují VBA kódu. Můžou začít relativně dlouhých bloku kódu s komentářem, která vysvětluje celkové účel a pak pomocí vložených komentářů na jednotlivé příkazy dokumentu.

Další způsob, jak dokumentu makra a počet vlastních funkcí je dodá popisných názvů. Třeba místo název makra popisky, může pojmenujete ho MonthLabels popisující konkrétněji účel, který slouží makro. Použití popisný název makra a vlastní funkce je užitečná v po vytvoření mnoha postupech, zejména pokud vytváříte postupy, které mají podobný, ale nejsou stejné jako referenci.

Jak bude dokument makra a počet vlastních funkcí je předmětem představ. Co je důležité, je přijmout některé metody, které si přečtěte následující dokumentaci a konzistentní používání.

Použití vlastní funkce, musí být sešit obsahující modul, ve které jste vytvořili funkci Otevřít. Pokud sešit není otevřený, se zobrazí #NAME? Když se pokusíte použít funkci došlo k chybě. Pokud odkaz na funkci v jiném sešitu, musíte před názvu funkce s názvem sešit, ve kterém je umístěn funkci. Pokud vytvoříte funkci DISKONTNÍ v sešitě s názvem Personal.xlsb a volat tuto funkci z jiného sešitu, například musíte zadat =personal.xlsb!discount(), nikoli pouze =discount().

Můžete si ušetřit některých klávesových úhozů (a možné překlepy) tak, že vyberete svůj vlastní funkce v dialogovém okně Vložit funkci. Počet vlastních funkcí se zobrazí v kategorii uživatelsky definovaná:

insert function dialog box

Snadný způsob, jak vytvořit vlastní funkce jsou dostupné na webu vždy je uložit v jiném sešitu a uložte tento sešit jako doplňky. Můžete pak zpřístupnit doplněk při každém spuštění Excelu. Tady je postup, jak udělejte toto:

  1. Po vytvoření funkce, které potřebujete, klikněte na soubor > Uložit jako.

    V Excel 2007 klikněte na Tlačítko Microsoft Office a klikněte na Uložit jako

  2. V dialogovém okně Uložit jako otevřete seznam rozevíracího seznamu Uložit jako typ a vyberte Doplněk aplikace Excel. Uložte sešit ve skupinovém rámečku srozumitelný název, například MyFunctionsve složce Doplňky . Dialogové okno Uložit jako navrhne této složky, takže musíte udělat stačí přijměte výchozí umístění.

  3. Po uložení sešitu, klikněte na soubor > Možnosti aplikace Excel.

    V Excel 2007 klikněte na Tlačítko Microsoft Office a klikněte na Možnosti aplikace Excel.

  4. V dialogovém okně Možnosti aplikace Excel klikněte na kategorii Doplňky.

  5. V rozevíracím seznamu Spravovat vyberte Položku doplňky aplikace Excel. Klikněte na tlačítko Přejít.

  6. V dialogovém okně Doplňky zaškrtněte políčko vedle názvu, který jste použili k uložení sešitu tak, jak je ukázáno v následujícím příkladu.

    add-ins dialog box

  1. Po vytvoření funkce, které potřebujete, klikněte na soubor > Uložit jako.

  2. V dialogovém okně Uložit jako otevřete seznam rozevíracího seznamu Uložit jako typ a vyberte Doplněk aplikace Excel. Uložte sešit ve skupinovém rámečku srozumitelný název, například MyFunctions.

  3. Po uložení sešitu, klikněte na Nástroje > Položku doplňky aplikace Excel.

  4. V dialogovém okně Doplňky klikněte na tlačítko Procházet najděte doplněk, klikněte na Otevřít a pak zaškrtněte políčko vedle svého doplněk v seznamu Doplňky k dispozici.

Po provedení těchto kroků vlastní funkce bude k dispozici při každém spuštění Excelu. Pokud chcete přidat do knihovny funkcí, vraťte se do editoru jazyka Visual Basic. Pokud hledáte v okně Průzkumník projektu jazyka Visual Basic Editor pod nadpisem VBAProject, uvidíte modulu s názvem po soubor doplňku. Doplněk bude mít .xlam rozšíření.

named module in vbe

Poklikáním tento modul Prohlížeč projektu, bude editoru jazyka Visual Basic zobrazit kód (funkce). Pokud chcete přidat novou funkci, umístěte kurzor po provedení příkazu ukončení funkce, které končí posledním funkcí v okně kódu a začněte psát. Můžete vytvořit jako mnoho funkcí a potřebujete tímto způsobem se budou vždy dostupné v kategorii uživatelsky definovaná v dialogovém okně Vložit funkci.

Tento obsah autorem původně zesvětlit označit a Craiga Stinsona jako součást jejich adresář Microsoft Office Excel 2007 Inside Out. Protože byla aktualizoval vyrovnat novějších verzích aplikace Excel i.

Potřebujete další pomoc?

Kdykoli se můžete zeptat některého odborníka v technické komunitě Excelu, získat podporu v komunitě pro odpovědi, případně navrhnout novou funkci nebo vylepšení ve fóru Excel User Voice.

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×