Přejít na hlavní obsah

Jak použít různé barvy v listboxu v Excelu VBA

ListBox je jedním z nejoblíbenějších ovládacích prvků v Excelu VBA, který umožňuje uživateli vybrat si jeden nebo více řádků ze seznamu možností. Vizuálně obvykle vypadá jako jednoduchý seznam s možností posouvání. Ale co když chcete do seznamu přidat určitou rozmanitost a poskytnout uživatelům intuitivnější použití? Jedním ze způsobů, jak toho dosáhnout, je instalace různých barev pro jednotlivé položky listboxu.

K implementaci této funkce budete muset použít Excel VBA a některé z jeho vestavěných funkcí a vlastností. Nejprve byste měli přistupovat k listboxu ve své Excelové tabulce pomocí návrhu "Set". Poté můžete použít vlastnost "List" k přidání položek do listboxu. Ale jak přidáte barvu pro každý prvek?

Níže je uveden příklad kódu, který vám umožní přidat položky s různými barvami do listboxu. Pomocí funkce ChangeColor můžete nastavit barvu pro každou položku a poté ji přidat do listboxu. Poté můžete použít událost click pro ListBox k zobrazení vybrané položky a její barvy v buňce tabulky aplikace Excel.

Private Sub UserForm_Initialize()

Dim i As Integer

Dim cColor As Range

i = 1

For Each cColor In Range("A1:A5")

ChangeColor ListBox1.ListBox(i), cColor.Value

i = i + 1

Next cColor

End Sub

Nyní můžete přidat svůj vlastní kód pro práci s Listboxem v Excelu VBA a užít si možnost použít různé barvy na položky seznamu. Váš uživatel bude příjemně překvapen takovou interaktivitou a intuitivním používáním vaší aplikace.

Aplikace různých barev v listboxu v Excelu VBA

Standardní ListBox má však omezené možnosti přizpůsobení vzhledu položek seznamu. Zejména nelze změnit barvu pozadí nebo písma jednotlivých položek seznamu.

Pomocí některých dalších triků však můžete dosáhnout požadovaného výsledku a použít různé barvy v listboxu. Jedním ze způsobů je použití položky ComboBox místo listboxu. ComboBox vám umožňuje přizpůsobit vzhled položek seznamu pomocí formátování textu v kombinaci s automatickým textem.

Chcete-li použít různé barvy v listboxu, musíte nejprve vytvořit ComboBox a nastavit jeho vlastnost Style na 2 (fmStyleDropDownList). Poté můžete přidat prvky do comboboxu a formátovat je pomocí autotexu.

Dim myList As ComboBoxSet myList = Sheet1.Shapes.AddFormControl(xlDropDownCombo, Left:=10, Top:=10, Width:=100, Height:=20).ControlWith myList.Style = fmStyleDropDownList.AddItem "Красный".AddItem "Синий".AddItem "Зеленый".List(.ListCount - 1, 1) = "RGB(255, 0, 0)".List(.ListCount - 2, 1) = "RGB(0, 0, 255)".List(.ListCount - 3, 1) = "RGB(0, 255, 0)".Font.Color = .List(0, 1)End With

V tomto příkladu je vytvořen ComboBox se třemi prvky a jejich odpovídajícími barvami jako RGB kódy. Při výběru položky v comboboxu se barva písma automaticky změní na zvolenou barvu.

Pomocí comboboxu a formátování textu pomocí automatického textu lze tedy dosáhnout efektu aplikace různých barev v listboxu v Excelu VBA.