/ / Pętla poprzez formanty w Excelu VBA

Pętla poprzez formanty w programie Excel VBA

Za pomocą zaledwie kilku linii kodu możemy łatwo przechodzić przez kontrolę na Formularz użytkownika Excel VBA. Forma użytkownika, którą utworzymy, wygląda następująco:

Pętla poprzez formanty w programie Excel VBA

Aby utworzyć tę Userform, wykonaj następujące kroki.

1. Otwórz Edytor Visual Basic. Jeśli Eksplorator projektu nie jest widoczny, kliknij opcję Widok, Eksplorator projektu.

2. Kliknij Wstaw, Formularz użytkownika. Jeśli Zestaw narzędzi nie pojawi się automatycznie, kliknij opcję Widok, Przybornik. Twój ekran powinien być ustawiony jak poniżej.

Konfiguracja ekranu Userform w programie Excel VBA

3. Dodaj etykietę, zaznacz pola (pierwszy na górze, drugi pod pierwszym itd.) I przycisk polecenia. Po zakończeniu, wynik powinien być zgodny z obrazem formularza użytkownika pokazanym wcześniej. Na przykład utwórz kontrolkę pola wyboru, klikając CheckBox z Przybornika. Następnie możesz przeciągnąć pole wyboru na Userform.

4. Możesz zmienić nazwy i podpisy kontrolek. Nazwy są używane w kodzie Excel VBA. Napisy są wyświetlane na ekranie. Dobrą praktyką jest zmiana nazw kontrolek, ale nie jest to konieczne, ponieważ w tym przykładzie mamy tylko kilka elementów sterujących. Aby zmienić podpisy formularza użytkownika, etykiety, pola wyboru i przycisku polecenia, kliknij opcję Wyświetl, okno właściwości i kliknij poszczególne elementy sterujące.

5. Aby wyświetlić Formularz użytkownika, umieść przycisk polecenia w arkuszu i dodaj następującą linię kodu:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Stworzyliśmy teraz pierwszą część Userform. Mimo, że wygląda już porządnie, nic się nie stanie, gdy klikniemy przycisk Wyczyść.

6. Otwórz Edytor Visual Basic.

7. W Project Explorerze kliknij dwukrotnie UserForm1.

8. Kliknij dwukrotnie przycisk Wyczyść.

9. Dodaj następujące linie kodu:

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

Wyjaśnienie: Excel VBA zapętla wszystkie formanty w Userform. Funkcja TypeName służy do odfiltrowania elementów sterujących pola wyboru. Jeśli kontrola pola wyboru, Excel VBA odznacza pole wyboru. contr jest tu losowo wybrany, możesz użyć dowolnej nazwy. Pamiętaj, aby odwoływać się do tej nazwy w pozostałej części kodu.

Wynik po kliknięciu przycisku Wyczyść:

Pętla poprzez wyniki kontroli

Przeczytaj również: