Formularz użytkownika Excel VBA z wieloma stronami - łatwe makra Excel

Spisie treści

Poniżej przyjrzymy się programowi w Excel VBA, który tworzy formularz użytkownika zawierający wiele stron. Ten formularz użytkownika zawiera również obrazy.

Kontrola wielostronicowa zawiera dwie strony. Na stronie 1 użytkownik może wprowadzić swoje dane osobowe. Na stronie 2 użytkownik może wskazać, który obraz najbardziej mu się podoba.

Aby utworzyć ten formularz użytkownika, wykonaj następujące kroki.

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

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

3. Dodaj kontrolkę wielostronicową, etykiety, pola tekstowe (najpierw u góry, drugie pod pierwszym), ramkę, przyciski opcji (najpierw po lewej, drugi po prawej), pole listy, kontrolkę obrazu i przycisk polecenia. Po zakończeniu wynik powinien być zgodny z pustą wersją Userform pokazaną wcześniej. Na przykład utwórz kontrolkę wielostronicową, klikając opcję Wiele stron w przyborniku. Następnie możesz przeciągnąć kontrolkę Multipage na formularzu użytkownika. Kiedy dojdziesz do ramki Płeć, pamiętaj, aby najpierw narysować tę ramkę, zanim umieścisz w niej dwa przyciski opcji.

4. Możesz zmienić nazwy i podpisy kontrolek. Nazwy są używane w kodzie Excel VBA. Napisy to te, które pojawiają się na ekranie. Dobrą praktyką jest zmiana nazw kontrolek, ale nie jest to konieczne, ponieważ w tym przykładzie mamy tylko kilka kontrolek. Aby zmienić podpis Formularza użytkownika, zakładki wielostronicowe, etykiety, ramkę, przyciski opcji i przycisk polecenia, kliknij Widok, okno Właściwości i kliknij każdą kontrolkę.

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

Prywatna Sub CommandButton1_Click()
UserForm1.Pokaż
Napis końcowy

Teraz utworzymy Sub UserForm_Initialize. W przypadku użycia metody Show dla formularza użytkownika ten podrzędny zostanie automatycznie wykonany.

6. Otwórz Edytor Visual Basic.

7. W Project Explorer, kliknij prawym przyciskiem myszy UserForm1, a następnie kliknij View Code.

8. Wybierz Formularz użytkownika z lewej listy rozwijanej. Wybierz Zainicjuj z prawej listy rozwijanej.

9. Dodaj następujące linie kodu:

Prywatna Sub UserForm_Initialize()
Z ListBox1
.AddItem "Góry"
.AddItem "Zachód słońca"
.AddItem "Plaża"
.AddItem "Zima"
Kończyć z
Napis końcowy

Wyjaśnienie: pole listy na stronie 2 zostanie wypełnione.

Stworzyliśmy teraz pierwszą część Userform. Choć już wygląda ładnie, nic się jeszcze nie stanie, gdy wybierzemy element z listy lub klikniemy przycisk OK.

10. Pobierz obrazy (prawa strona tej strony) i dodaj je do "C:\test\"

11. W Eksploratorze projektów kliknij dwukrotnie UserForm1.

12. Kliknij dwukrotnie pole listy.

13. Dodaj następujące linie kodu:

Prywatne pole listy podrzędnej1_Click()
Jeśli ListBox1.ListIndex = 0 Wtedy
Image1.Picture = LoadPicture("C:\test\Mountains.jpg")
Zakończ, jeśli
Jeśli ListBox1.ListIndex = 1 Wtedy
Image1.Picture = LoadPicture("C:\test\Sunset.jpg")
Zakończ, jeśli
Jeśli ListBox1.ListIndex = 2 Wtedy
Image1.Picture = LoadPicture("C:\test\Plaża.jpg")
Zakończ, jeśli
Jeśli ListBox1.ListIndex = 3 Wtedy
Image1.Picture = LoadPicture("C:\test\Zima.jpg")
Zakończ, jeśli
Napis końcowy

Wyjaśnienie: te linie kodu ładują obraz w zależności od wybranego elementu w polu listy.

14. Kliknij dwukrotnie przycisk OK.

15. Dodaj następujące linie kodu:

Prywatna Sub CommandButton1_Click()
Przyciemnij pusty wiersz tak długo
'Ustaw arkusz 1 jako aktywny
Arkusz1.Aktywuj
'Określ pusty wiersz
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
„Informacje o przekazywaniu”
Cells(emptyRow, 1).Value = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value
Jeśli OptionButton1.Value = True Wtedy
Cells(emptyRow, 3).Value = "Mężczyzna"
W przeciwnym razie
Cells(emptyRow, 3).Value = "Kobieta"
Zakończ, jeśli
Cells(emptyRow, 4).Value = ListBox1.Value
'Zamknij formularz użytkownika
Rozładuj mnie
Napis końcowy

Wyjaśnienie: najpierw aktywujemy Sheet1. Następnie określamy emptyRow. Zmienna emptyRow jest pierwszym pustym wierszem i zwiększa się za każdym razem, gdy dodawany jest rekord. Następnie przenosimy informacje z Userform do konkretnych kolumn emptyRow. Na koniec zamykamy Userform.

16. Wyjdź z Edytora Visual Basic, wprowadź etykiety pokazane poniżej w wierszu 1 i przetestuj formularz użytkownika.

Wynik:

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave