/ / Smyčka pomocí ovládacích prvků v aplikaci Excel VBA

Smyčka pomocí ovládacích prvků v aplikaci Excel VBA

Pouze s několika řádky kódu můžeme snadno smyčky přes ovládací prvky na Excel VBA Userform. Uživatelský formulář, který vytvoříme, vypadá takto:

Smyčka pomocí ovládacích prvků 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, zaškrtávací políčka (nejprve v horní části, druhá pod první a podobně) 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 zaškrtávací políčko klepnutím na políčko Checkbox z panelu nástrojů. Dále můžete zaškrtnout políčko 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 položky Userform, štítek, zaškrtávacích políček a příkazového tlačítka, 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í jsme vytvořili první část Userform. I když to vypadá dobře, nic se nestane, když klikneme na tlačítko Vymazat.

6. Otevřete editor jazyka.

7. V Průzkumníkovi projektu poklepejte na UserForm1.

8. Poklepejte na tlačítko Vymazat.

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

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls
    If TypeName(contr) = "CheckBox" Then
        contr.Value = False
    End If
Next

End Sub

Vysvětlení: Excel VBA přechází přes všechny ovládací prvky v Userform. Funkce TypeName slouží k odfiltrování ovládacích prvků políčka. Pokud zaškrtnutí políčka zaškrtávací políčko Excel VBA zruší zaškrtnutí políčka. contr je zde vybrána náhodně, můžete použít libovolné jméno. Nezapomeňte odkazovat na toto jméno ve zbytku kódu.

Výsledek po klepnutí na tlačítko Vymazat:

Loop Result Controls

Také si přečtěte: