Zde najdete některé relativně jednoduché vlastní funkce listu Excel VBA, které jsou také velmi užitečné. Tyto funkce se nazývají obalové funkce, protože se skládají z kódu, který je zabalen kolem vnitřních prvků VBA. Jinými slovy, umožňují používat funkce VBA ve vzorcích listu.
Funkce User()
' Vrátí jméno aktuálního uživatele
Uživatel = Application.UserName
End Function
Tato funkce v podstatě umožňuje vašim vzorcům přístup k vlastnosti UserName objektu Application.
Funkce NumberFormat
Tato funkce jednoduše zobrazí formát čísla buňky. Může být užitečné, pokud potřebujete zajistit, aby všechny skupiny buněk měly stejný číselný formát.
Formát čísla funkce (buňka)
' Vrátí formát čísla buňky
NumberFormat = Cell(1).Formát čísla
End Function
Všimli jste si použití buňky (1)? Pokud je jako argument použit rozsah více buněk, použije se pouze první buňka.
Můžete snadno napsat podobné funkce, které vrátí barvu textu buňky, barvu pozadí, písmo a tak dále.
Funkce ExtractElement
Tato funkce wrapper vrací podřetězec z textového řetězce, který obsahuje více prvků, oddělených oddělovacím znakem. Tento vzorec například vrátí cow, což je třetí prvek v řetězci, který jako oddělovač používá mezeru. Argumenty by samozřejmě mohly být odkazy na buňky.
=ExtractElement("pes kůň kráva kočka", 3, "")
Zde je kód, který je obalem pro funkci Split VBA:
Funkce ExtrahovatElement(Txt, n, Sep)
' Vrátí n-tý prvek textového řetězce, kde je
' prvky jsou odděleny zadaným oddělovacím znakem
ExtractElement = Split(Application.Trim(Txt), Sep)(n - 1)
End Function
Obrázek níže ukazuje funkci ExtractElement používanou ve vzorcích listu. Sloupec A obsahuje textový řetězec, sloupec B obsahuje číslo prvku, který má být extrahován, a sloupec C obsahuje oddělovač (buňky, které se zdají být prázdné, obsahují znak mezery).
Použití funkce ExtractElement k vrácení prvku z řetězce.
Funkce SayIt
Tato jednoduchá funkce je obalem pro metodu Speak objektu Application.Speech. K „mluvení“ argumentu používá syntetizovaný hlas.
Funkce SayIt(txt)
' mluví argument
Application.Speech.Speak txt, pravda
End Function
Zde je příklad:
=IF(C10>10000,SayIt(“Over budget”),”OK”)
Vzorec kontroluje buňku C10. Pokud je hodnota větší než 10 000, funkce vysloví text: „Přes rozpočet“. Pokud je hodnota menší než 10 000, funkce zobrazí text OK (a nic neříká).
Používejte střídmě. Pokud tuto funkci použijete vícekrát, může to být velmi matoucí. Pamatujte také, že tato funkce je vyhodnocena při každém výpočtu listu, takže hlas může být velmi nepříjemný, pokud provádíte mnoho změn. Tato funkce je pravděpodobně vhodnější pro účely zábavy.
Funkce IsLike
Operátor Like VBA je velmi flexibilní způsob, jak porovnávat textové řetězce. Podívejte se na to v systému nápovědy VBA. Tato funkce přináší tento výkon do vzorců vašeho listu:
Funkce IsLike(text, vzor)
' Vrátí hodnotu true, pokud je první argument stejný jako druhý
IsLike = text jako vzor
End Function