/ / Excel VBA závislé Combo Boxy

Excel VBA závislé Combo Boxy

Níže se podíváme na program v Excel VBA který vytvoří Userform, který obsahuje závislé pole se seznamem. Uživatelský formulář, který vytvoříme, vypadá takto:

Uživatel vybírá Zvířata z rozevíracího seznamu. Výsledkem je, že uživatel může vybrat z druhého rozevíracího seznamu zvíře.

Závislé kombinované schránky v aplikaci Excel VBA

Uživatel vybírá z rozevíracího seznamu Sporty. V důsledku toho může uživatel vybrat druhého rozbalovacího seznamu sportu.

Závislé kombinované schránky 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 pole se seznamem (první vlevo, druhý vpravo) a příkazové tlačítko. 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 příkazového formuláře Userform a příkazu, 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()

With ComboBox1
    .AddItem "Animals"
    .AddItem "Sports"
    .AddItem "Food"
End With

End Sub

Vysvětlení: Tyto řádky kódu vyplňují první pole se seznamem.

Nyní jsme vytvořili první část Userform. Ačkoli to vypadá dobře, nic se nestane, když vybereme položku z prvního pole se seznamem.

10. V aplikaci Project Explorer poklepejte na UserForm1.

11. Dvakrát klikněte na první pole se seznamem.

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

Private Sub ComboBox1_Change()

Dim index As Integer
index = ComboBox1.ListIndex

ComboBox2.Clear

Select Case index
    Case Is = 0
        With ComboBox2
            .AddItem "Dog"
            .AddItem "Cat"
            .AddItem "Horse"
        End With
    Case Is = 1
        With ComboBox2
            .AddItem "Tennis"
            .AddItem "Swimming"
            .AddItem "Basketball"
        End With
    Case Is = 2
        With ComboBox2
            .AddItem "Pancakes"
            .AddItem "Pizza"
            .AddItem "Chinese"
        End With
End Select

End Sub

Vysvětlení: Aplikace Excel VBA používá hodnotu indexu proměnných k otestování každého následujícího příkazu Case, aby zjistil, se kterými položkami by měl být vyplněn druhý seznam se seznamem. Projděte si program Select Case a dozvíte se více o struktuře Select Case.

13. Dvakrát klikněte na tlačítko Import.

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

Private Sub CommandButton1_Click()

Range("A1").Value = ComboBox2.Value

End Sub

Výsledek:

Závislé kombinované schránky v aplikaci Excel VBA

Také si přečtěte: