Vložení combo a combobox: základní vlastnosti a použití v prostředí Visual Basic a formulářů

Seznam základních vlastností prvku ComboBox (Výběrové pole) v prostředí Karty Vývojář a Visual Basic nám umožňuje pochopit, jak správně navrhnout a ovládat tento prvek v UserForm. Okno vlastností můžeme zobrazit klávesou F4. Pojmenování prvku (můžeme změnit) a jeho jedinečný název se používají pro referenci v kódu; název prvku se musí změnit před psaním kódu.

Názvy a typy nastavení prvku

Specifikuje, zda mění objekt automaticky velikost v souladu se svým celým obsahem. Specifikuje, zda se vyvolá automatický tabelátor, jakmile uživatel vloží maximální přípustný počet znaků do ovládacího prvku. Případně vrací nastavení tohoto parametru. Hodnota TRUE, FALSE. True - Výchozí nastavení.

Vrací nebo nastavuje barvu okrajů. Specifikuje šířku jednotlivých sloupců rozbalovacího seznamu (pro více sloupců). K oddělení údajů o jednotlivých sloupcích použijeme středník (;). Nebo zobrazí jak jsou sloupce rozděleny. Identifikuje kde se budou ukládat data, která se vloží přes vlastnost Value. Bublinková nápověda.

Vlastnosti a chování ComboBoxu

Stanoví, jestli systém umožní funkci přetažení. fmDragBehaviorDisabled - 0 - Neumožňuje akci přetažení (výchozí nastavení). Určuje, zda se může ovládací prvek stát aktivním a odpovídat na události, generované uživatelem. Určuje chování při výběru po vstupu do ComboBox (Výběrové pole). Varcí nastavení nebo definuje barvu popředí objektu tj. Určuje, zda má zůstat vybraný text zvýrazněn i v případě, že se prvek není aktivním. Hodnoty True (výchozí) Neaktivní text není zvírazněn.

Umístění objektu od levého okraje. Specifikuje maximální počet řádků, jež se v seznamu zobrazí. Překračuje-li počet položek v seznamu hodnotu vlastnosti ListRows, zobrazí se na pravém okraji seznamu nebo rozbalovacího seznamu posuvník. Specifikuje vzhledové vlastnosti seznamu v poli ComboBox. fmListStylePlain - 0 - Vypadá jako běžný seznam se zvýrazněným pozadím položek. fmListStyleOption - 1 - Zobrazí tlačítka s možností vícenásobného výběru (výchozí nastavení).

Specifikuje šířku seznamu v poli ComboBox. Chceme-li zobrazit seznam o více sloupcích, zadáme dostatečně velkou hodnotu, která umožní zobrazit všechny sloupce. Určuje, zda lze ovládací prvek editovat. Případně vrací stav této vlastnosti. fmMatchEntryFirstLetter 0 Základní porovnání. Ovládací prvek hledá další položku, je začíná zadaným znakem. Opakované vkládání téhož znaku cykluje všemi položkami, jež začínají daným znakem. FmMatchEntryComplete 1 Rozšíření porovnání. Určuje, zda hodnota, zadaná do textové části ComboBox musí odpovídat položce v existujícím seznamu ovládacího prvku. True - Zadaný text musí odpovídat existující položce seznamu. False - Zadaný text se může lišit od všech existujících položek seznamu (výchozí nastavení).

Specifikuje maximální počet znaků, které může uživatel zadat do ComboBox (Výběrové pole) nebo vrací tento počet znaků. Vrací typ ukazatele myši, nebo nastaví ukazatel myši. Specifikuje zdroj, který poskytuje seznam pro pole typu ComboBox. fmShowDropButtonWhenFocus - 1 - Tlačítko pro rozbalení zobrazit jen u aktivního prvku. Vrací nebo udává pozici jednoho objektu v pořadí karet formuláře. Určuje, zda se může objekt stát aktivním, když na něj uživatel přejde klávesou tabelátor. Nabývá hodnot TRUE, FALSE. True - Přístup TAB je možný (výchozí nastavení).

Umístění a vzhled

Zarovnání textu. Vpravo, vlevo, na střed. Umístění objektu od horního okraje. Nastavuje nebo vrací položku, umístěnou v nejvyšší pozici seznamu. Nastavuje viditelnost objektu, nebo zobrazuje jaký stav má objekt.

V kontextu programování a designu formulářů je důležité mít na paměti, že název prvku a jeho vlastnosti ovlivňují, jak se s komponentou pracuje v kódu. Při návrhu formuláře tak můžeme přesně nastavit, jak bude ComboBox reagovat na vstupy uživatelů a jak bude zobrazovat data.

Praktické použití a dynamicita

Ve formulářích Excel VBA se často používá dynamické vložení dat do ComboBoxu z databázových či tabulkových zdrojů. Do ComboBoxu je potřeba vložit údaj z jednoho sloupce v tabulce, bez záhlaví daného sloupce. V případě dynamických změn dat na listu je vhodné, aby se změny projevily i v samotném ComboBoxu. Využíváme dynamickou oblast a zvážíme zobrazování více sloupců pomocí dostatečně velké šířky seznamu.

Chceme-li mít v ComboBox záhlaví, lze to upravit v nastavení a následně číst design, upravovat vzhled a ladit chování. Jak odstranit konkrétní položku z ComboBoxu nebo jak pracovat s položkami - to vše lze řešit pomocí metod Add, Insert, Clear nebo Remove a dalších vlastností.

Praktické poznámky a souvislosti

Informace ohledně praktického použití ComboBoxu ve formulářích Excel VBA a obecně práce s více sloupci, skrýváním sloupců a vložením odkazů na zdroje dat mohou doplnit obrazu o možnostech tohoto prvku. Případně lze rozšířit článek o ukázky kódu, jak napojit zdroje dat na listy a jak spravovat dynamicky definované oblasti.

Při práci s ComboBox v rámci Visual Basic se můžete setkat s popisem, že v Okně vlastností se lze podívat na nastavení jako fmShowDropButtonWhenFocus, ListRows, ListStyle a dalších, které rozhodují o tom, jak se položky zobrazují a jak na sebe navazují interakce uživatele s prvkem.

Infografika: Základní vlastnosti a vztahy ComboBoxu v UserForm

Ovládací prvek Windows Forms ComboBox slouží k zobrazení dat v rozbalovacím seznamu a v kontextu VBA bývá rozdělen na textové pole a seznam. Vybrané položky lze získat prostřednictvím vlastností SelectedIndex a SelectedItem; změna SelectedIndex v kódu zobrazí odpovídající položku v textové části. Pokud není žádná položka vybrána, hodnota SelectedIndex je -1. Pokud je vybrána první položka, SelectedIndex je 0.

Pro úplnost je vhodné doplnit krátkou tabulku s klíčovými vlastnostmi a jejich popisem, aby čtenář rychle našel souvislosti mezi jednotlivými atributy.

Název vlastnostiPopis
ListRowsMaximální počet řádků zobrazených v seznamu
ListStyleVzhled seznamu: Plain nebo Option (vícenásobný výběr)
ColumnCountPočet sloupců zobrazených v rozbalovacím seznamu
MatchEntryUrčuje, zda vstup musí odpovídat položce z databáze
AutoSizeAutomatické zvětšení podle obsahu
Schéma zapojení vlastností ComboBoxu a jeho datového zdroje

Vzorový postup použití

  1. Zvolte Insert - UserForm a vložte prvky ComboBox.
  2. V Okně vlastností nastavte jedinečný název prvku a konfigurované vlastnosti ListRows, ListStyle, ColumnCount a MatchEntry podle požadavků aplikace.
  3. Napojte zdroj dat pro ComboBox (z listu, tabulky nebo databáze) a podle potřeby definujte dynamickou oblast pro automatické doplňování dat.
  4. V kódu nastavte výchozí SelectedIndex na -1 a zpracujte události, kdy uživatel vybere položku.
  5. Testujte chování rozbalovacího seznamu a ujistěte se, že rozhraní odpovídá uživatelským očekáváním.

Specifikované vlastnosti a postupy vám umožní vytvořit robustní a uživatelsky příjemný ComboBox v aplikacích na platformě Visual Basic a v rámci formulářů, které čerpají data z různých zdrojů a vyžadují pokročilé možnosti zobrazení či filtrování položek.

Konfigurace rozbalovacího seznamu (ComboBox) ve formuláři Excel VBA UserForm

tags: #vlozeni #combo #combobox