V předchozích dílech jsme pokračovali v projektu, kde postupně zdokonalujeme práci s uživatelskými funkcemi. 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 Dateserial a Weekday, která v Excelu je také, ale jednak je užitečné rozšířit své znalosti interních funkcí VB, jednak nám zapouzdření algoritmu do uživatelské funkce umožňuje před uživatelem utajit přesný algoritmus, a přesto nebránit uživateli v tvůrčím používání této funkce pro jeho práci v Excelu.
Podkladová úloha: Pracujeme se sešitem, v němž je formulář, jejž je třeba vyplňovat. Dnes se zaměříme na položku „Na počítači přihlášen“. Stáhněte si sešit 2012-10 UD-funkce.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:
Přestože je to žertovná úloha, bude sloužit k vyzkoušení několika dalších dovedností v Excelu, zejména využití uživatelských funkcí. Dnes nás bude zajímat, kdo byl při vyplňování přihlášen na počítači.
My si ve VBA zjistíme, kdo je přihlášen, ale necháme to vyplnit uživatele ručně do políčka označeného šipkou. Ve sloupci výsledků kontrol zapíšeme úroveň shody. Např. pokud je přihlášen „Novák“, a uživatel do políčka vyplní „Josef Novák“, zapíšeme jako výsledek: „Snaživý“. Pokud vyplní jen Josef, doplníme „Nepřesvědčivé“. Pokud uvede „Novák“ do písmene přesně, zapíšeme „Pečlivý“.
Nejprve zase zkusíme využít k nalezení vhodné funkce ve VBA možností ObjectBrowseru (Vyvoláme např. <F2>):
Tohle UserName odpovídá nastavení Office, kde se dozvíme, co tam bylo vloženo obvykle při instalaci (např. po stisku kulatého tlačítka Office u…