dnes je 21.12.2024

Input:

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

9.11.2012, , Zdroj: Verlag Dashöfer

V předchozím dílu jsme se snažili ovládnout položku formuláře kvůli předanému požadavku od CIA taktně zkoumat vztah uchazeče k náboženství. Použili jsme event ComboBoxu Change, kam dnes doplníme funkčnost.

Podkladová úloha: Pracujeme se sešitem, v němž je formulář, jejž je třeba vyplňovat. Posledně nás předseda klubu překvapil požadavkem, že CIA se obává infiltrace islámských teroristů do klubu. Požádali jej, aby součástí formuláře byly otázky nenápadně vyzvídající vztah uchazeče k náboženství. Stáhněte si sešit 2012-23 UD-funkce.xlsm z odkazu na konci článku. Sešit otevřete. Uvidíte zhruba toto:

Jdeme cestou ComboBoxu přímo na listu a k němu přidružíme program ve VBA, který kód vybrané položky získá, a přičte jej do předem definované buňky. Tuto buňky nepotřebujeme nutně na listu s formulářem, který je zamčený pro zápis, a zvláštní číslo by mohlo poutat nežádoucí pozornost uchazečů. Umístíme si nasčítávaný společný kód výběru na Tajný list. Ten tedy dočasně pro účely vývoje zviditelníme:

Nyní můžeme využít předpřipravené rutiny z dílu 16, abychom se zadaným výběrem mohli pracovat. Kód najdeme ve VBA pod listem „Formulář“ (pravé tlačítko myši):

My si teď zkontrolujeme, že nový kód je mocnina 2, a že není ještě obsažen ve výběru:

Výsledek z funkce Obsahuje_kod ovšem není moc důležitý, protože jej máme dosud nulový. Pro větší smysluplnost zařadíme již příkaz s přičtením a spustíme vícekrát po sobě. Nejprve zvolíme Ateismus a pak Lamaismus (kódy 2048 a 16):

Poznámka: Rutina „Obsahuje_kod“ nebyla dokonalá, a bylo nutno ji lehce upravit. Podívejte se na změnu proti dílu 16 do VBE. Např. chybně hlásila, že kód 16 je již

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