dnes je 10.12.2022

Input:

Excel 2007: Makra – VBA - Uživatelská funkce – 2. část

29.3.2012, , Zdroj: Verlag Dashöfer

V předchozím dílu jsme zahájili sérii článků, které se budou zabývat uživatelskými funkcemi. Je to příslib, že když vám v Excelu nějaká funkce chybí, budete si umět poradit skoro se vším. Minule jsme v základním provedení poznali VBA funkci Split.

Podkladová úloha: Pracujeme se sešitem, v němž je formulář, jejž je třeba vyplňovat. Stáhněte si sešit 2012-07 UD-funkce.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:

Tato žertovná úloha nám bude sloužit jako hřiště k vyzkoušení několika dovedností v Excelu, zejména využití uživatelských funkcí.

Stanovy klubu požadují, aby uchazeč splňoval určitá kritéria, např. že se léčí přinejmenším u psychologa, že je schopen zapojit do procesu vyplňování nadprůměrnou inteligenci a že je konfliktní typ.

Než bude přihláška postoupena  přijímací komisi, je třeba vyloučit ty přihlášky, které zjevně nesplňují stanovy klubu, a nebude zatěžovat i tak dost vytíženého předsedu.

Všimněte si  například, že uchazeč napsal své jméno normálně a ne pozpátku. Budeme chtít rozeznat, zda je jméno zapsáno pozpátku, a nevhodné posluchače vyloučit.

Časem budeme doplňovat další povinné řádky, na nichž si osvojíme uživatelské funkce.

U první položky – diagnózy – kontrolujeme počet slov. Pokud není diagnóza dostatečně košatá, předpokládáme, že uchazeč není pro klub vhodný. Posledně jsme připravili VBA funkci, která takovou kontrolu provádí. Dnes ji nasadíme přímo do Excelu.

Naše funkce se jmenuje Kontrola_Diagnozy. Použijeme sloupec vpravo od formuláře ke kontrolám:

V obrázku jsou pro úsporu místa sloučeny dva dialogy. Vám se ukážou po sobě.

Zkopírujte funkci ještě o řádek níže, kde je druhá diagnóza. Výsledkem je následující obraz:

Všimněte si, že zkopírováním formule z buňky C3 do C4 pro nás pracoval Excel tak, jak jsme u vzorců zvyklí. Zkuste si za domácí úkol zkopírovat vzorec do buňky C7, kde bude kontrolovat jméno a příjmení jako by to byla diagnóza.

Pokud si trochu rozmyslíte, co jsme v naší funkci prováděli, musí vám být zřejmé, že máme téměř neomezené možnosti. Mohli bychom nejen zkoumat počet písmen ve slovech, ale např. zkoumat, zda se slovo vyskytuje v nějakém seznamu klíčových slov. Nebo bychom testovali, zda kromě písmen obsahuje i nějaká čísla, a pokud ano, vydal by program zvláštní doporučení k přijetí tohoto uchazeče. My však uděláme jedno vylepšení. Je celkem snadno představitelné, že diagnóza bude vypadat třeba takto:

Nahrávám...
Nahrávám...