Vba

Formularz użytkownika

Userform

Dodaj sterowanie | Pokaż formularz użytkownika | Przypisz makra | Przetestuj formularz użytkownika





W tym rozdziale dowiesz się, jak tworzyć Formularz użytkownika Excel VBA . Formularz użytkownika, który stworzymy, wygląda następująco:

Formularz użytkownika Excel VBA





Dodaj sterowanie

Aby dodać kontrolki do Userform, 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.

Konfiguracja ekranu użytkownika w Excel VBA

3. Dodaj kontrolki wymienione w poniższej tabeli. Po zakończeniu wynik powinien być zgodny z obrazem formularza użytkownika pokazanym wcześniej. Na przykład utwórz kontrolkę pola tekstowego, klikając pole tekstowe w przyborniku. Następnie możesz przeciągnąć pole tekstowe na formularzu użytkownika. Po dotarciu do ramki samochodu pamiętaj, aby najpierw narysować tę ramkę, zanim umieścisz w niej dwa przyciski opcji.

4. Zmień nazwy i podpisy kontrolek zgodnie z poniższą tabelą. Nazwy są używane w kodzie Excel VBA. Napisy to te, które pojawiają się na ekranie. Dobrą praktyką jest zmiana nazw kontrolek. Dzięki temu Twój kod będzie łatwiejszy do odczytania. Aby zmienić nazwy i podpisy kontrolek, kliknij Widok, okno Właściwości i kliknij każdą kontrolkę.

Kontrola Nazwa Podpis
Formularz użytkownika KolacjaPlannerUserFormularz Planowanie kolacji
Pole tekstowe NazwaPole Tekstowe
Pole tekstowe TelefonPole Tekstowe
Skrzynka na listy Pole listy miast
Pole kombi Kolacja ComboBox
Pole wyboru Pole wyboru daty1 13 czerwca
Pole wyboru Pole wyboru daty2 20 czerwca
Pole wyboru Pole wyboru daty3 27 czerwca
Rama Rama samochodu Samochód
Przycisk opcji Przycisk opcji samochodu1 tak
Przycisk opcji Przycisk opcji samochodu2 Nie
Pole tekstowe PieniądzePole Tekstowe
Przycisk wirowania MoneySpinPrzycisk
Przycisk polecenia Przycisk OK ok
Przycisk polecenia Przycisk Wyczyść Jasne
Przycisk polecenia Przycisk Anuluj Anulować
7 etykiet Nie trzeba zmieniać Imię i nazwisko:, Numer telefonu: itp.

Uwaga: pole kombi to rozwijana lista, z której użytkownik może wybrać element lub uzupełnić swój wybór. Można wybrać tylko jeden z przycisków opcji.

Pokaż formularz użytkownika

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

excel obliczyć wiek od daty urodzenia
Prywatny PodCommandButton1_Click()

DinnerPlannerUserForm.Show

Kończyć się Pod

Teraz utworzymy Sub UserForm_Initialize. Gdy użyjesz metody Show dla formularza użytkownika, ten podrzędny zostanie automatycznie wykonany.

1. Otwórz Edytor Visual Basic .

2. W Eksploratorze projektów kliknij prawym przyciskiem myszy DinnerPlannerUserForm, a następnie kliknij Wyświetl kod.

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

4. Dodaj następujące linie kodu:

Prywatny PodUserForm_Initialize()

'Puste pole tekstowe nazwy
NameTextBox.Value = ''

'Puste pole tekstowe telefonu
PhoneTextBox.Value = ''

'Pusta lista miast
CityListBox.Clear

'Wypełnij pole listy miast
ZPole listy miast
.AddItem „San Francisco”
.Dodaj pozycję „Oakland”
.Dodaj element „Richmond”
Kończyć się Z

„Pusta kolacja ComboBox”
KolacjaComboBox.Wyczyść

„Wypełnij kolację ComboBox”
ZKolacja ComboBox
.AddItem „Włoski”
.Dodaj pozycję „Chiński”
.AddItem „Frytki i Mięso”
Kończyć się Z

'Odznacz pola kontroli danych

Pole wyboru daty1.Wartość =Fałszywe
DateCheckBox2.Value =Fałszywe
DataCheckBox3.Wartość =Fałszywe

„Nie ustaw żadnego samochodu jako domyślnego”
CarOptionButton2.Wartość =Prawdziwe

'Opróżnij pole tekstowe pieniędzy
MoneyTextBox.Value = ''

'Ustaw fokus na NameTextBox
NameTextBox.SetFocus

Kończyć się Pod

Wyjaśnienie: pola tekstowe są opróżniane, pola listy i pola kombi są wypełnione, pola wyboru są odznaczone itp.

Przypisz makra

Stworzyliśmy teraz pierwszą część Userform. Chociaż już wygląda ładnie, nic się jeszcze nie stanie, gdy klikniemy przyciski poleceń na formularzu użytkownika.

1. Otwórz Edytor Visual Basic .

w programie Excel w trybie edycji możesz edytować zawartość komórki bezpośrednio w komórce.

2. W Eksploratorze projektów kliknij dwukrotnie DinnerPlannerUserForm.

3. Kliknij dwukrotnie przycisk Money spin.

4. Dodaj następującą linię kodu:

Prywatny PodMoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

Kończyć się Pod

Wyjaśnienie: ta linia kodu aktualizuje pole tekstowe, gdy używasz przycisku wirowania.

5. Kliknij dwukrotnie przycisk OK.

6. Dodaj następujące linie kodu:

Prywatny PodOKButton_Click()

Nicpusty wierszJak Długie

'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 = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

GdybyPole wyboru daty1.Wartość =Prawdziwe NastępnieCells(emptyRow, 5).Value = DateCheckBox1.Caption

GdybyDateCheckBox2.Value =Prawdziwe NastępnieCells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & ' ' & DateCheckBox2.Caption

GdybyDataCheckBox3.Wartość =Prawdziwe NastępnieCells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & ' ' & DateCheckBox3.Caption

GdybyCarOptionButton1. Wartość =Prawdziwe Następnie
Cells(emptyRow, 6).Value = 'Tak'
W przeciwnym razie
Cells(emptyRow, 6).Value = „Nie”
Kończyć się Gdyby

Cells(emptyRow, 7).Value = MoneyTextBox.Value

Kończyć się Pod

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. Na koniec przenosimy informacje z Userform do określonych kolumn emptyRow.

7. Kliknij dwukrotnie przycisk Wyczyść.

8. Dodaj następującą linię kodu:

Prywatny PodClearButton_Click()

PołączenieUserForm_Initialize

Kończyć się Pod

Wyjaśnienie: ta linia kodu wywołuje Sub UserForm_Initialize po kliknięciu przycisku Wyczyść.

9. Kliknij dwukrotnie przycisk Anuluj.

10. Dodaj następującą linię kodu:

Prywatny PodAnulujPrzycisk_Click()

Rozładuj mnie

Kończyć się Pod

Wyjaśnienie: ta linia kodu zamyka formularz użytkownika po kliknięciu przycisku Anuluj.

Przetestuj formularz użytkownika

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

Wynik:

Przetestuj formularz użytkownika

1/11 zakończone! Dowiedz się więcej o formularzach użytkownika >
Przejdź do następnego rozdziału: Zasięg



^