/ / VBA Multicolumn Combo Box Excel

VBA Multicolumn Combo Box Excel

Níže se podíváme na program v Excel VBA který vytvoří Userform, který obsahuje a vícebarevný seznam se seznamem.

Uživatelský formulář, který vytvoříme, vypadá takto:

Multicolumn Combo Box v aplikaci Excel VBA

Chcete-li vytvořit tento Userform, proveďte následující kroky.

1. Otevřete editor jazyka. Pokud aplikace Project Explorer není viditelná, klepněte na tlačítko Zobrazit, Project Explorer.

2. Klepněte na tlačítko Vložit, Formát uživatele. Pokud se panel nástrojů nezobrazí automaticky, klikněte na tlačítko Zobrazit, panel nástrojů. Vaše obrazovka by měla být nastavena níže.

Uživatelské nastavení obrazovky v aplikaci Excel VBA

3. Přidejte štítek, rozbalovací pole a příkazová tlačítka. Jakmile je tento postup dokončen, výsledek by měl být v souladu s obrázkem výše uvedeného formuláře User. Vytvořte například ovládací prvek pole po kliknutí na panel ComboBox. Dále můžete přetáhnout pole se seznamem v Userform.

4. Můžete změnit názvy a popisy ovládacích prvků. Jména jsou používána v kódu VBA aplikace Excel. Titulky jsou ty, které se zobrazují na obrazovce. Je dobré změnit názvy ovládacích prvků, ale není to nutné, protože v tomto příkladu máme jen několik ovládacích prvků. Chcete-li změnit popis tlačítek Userform, label a příkaz, klepněte na tlačítko Zobrazit, okno Vlastnosti a klepněte na každý ovládací prvek.

5. Chcete-li zobrazit Userform, umístěte příkazové tlačítko na pracovní list a přidejte následující řádek:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Nyní vytvoříme Sub UserForm_Initialize. Pokud použijete metodu Show for Userform, bude automaticky provedena tato položka.

6. Otevřete editor jazyka.

7. V Průzkumníku projektu klepněte pravým tlačítkem na UserForm1 a potom klepněte na tlačítko Zobrazit kód.

8. Z rozevíracího seznamu vlevo zvolte položku Forma uživatele. V pravém rozevíracím seznamu vyberte příkaz Inicializovat.

9. Přidejte následující řádky kódů:

Private Sub UserForm_Initialize()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Vysvětlení: První kódový řádek nastaví počet sloupců pole se seznamem na hodnotu 2. Namísto nastavení počtu sloupců za běhu můžete také toto nastavení nakonfigurovat v době návrhu. Chcete-li to dosáhnout, klepněte pravým tlačítkem myši na ovládací prvek pole se seznamem, klepněte na příkaz Vlastnosti a nastavte vlastnost ColumnCount na 2. Nyní deklarujeme a inicializujeme dvourozměrné pole. Poslední řádek kódu přiřadí pole do pole se seznamem.

Nyní jsme vytvořili první část Userform. Ačkoli to vypadá úhledně, nic se nic nestane, když klikneme na příkazové tlačítko Userform.

10. V aplikaci Project Explorer poklepejte na UserForm1.

11. Dvakrát klikněte na tlačítko OK.

12. Přidejte následující řádky kódu:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Poznámka: tyto řádky kódu uzavřou uživatelskou formu Excel VBA a zobrazí vybranou položku a žánr. Příkaz "Na chybě Resume Next" ignoruje chybu, když uživatel vyplní svůj vlastní film (v tomto případě není k dispozici žánr).

13. Dvakrát klikněte na tlačítko Zrušit.

14. Přidejte následující řádek kódu:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Výsledek, když vyberete rychlost a klepněte na tlačítko OK.

Výsledek víceúčelové kombinované schránky

Výsledek víceúčelové kombinované schránky

Také si přečtěte: