Excel VBA Userform
Dodajte kontrole | Prikaži Userform | Dodijelite makronaredbe | Ispitajte Userform
Ovo poglavlje vas uči kako stvoriti Excel VBA Userform, Korisnički obrazac koji ćemo stvoriti izgleda ovako:

Dodajte kontrole
Da biste dodali kontrole u Userform, izvršite sljedeće korake.
1. Otvorite Visual Basic Editor. Ako Project Explorer nije vidljiv, kliknite View, Project Explorer.
2. Kliknite Insert, Userform. Ako Toolbox ne pojavljuje automatski, kliknite View, Toolbox. Vaš bi se zaslon trebao postaviti kao u nastavku.

3. Dodajte kontrole navedene u donjoj tablici. Kada to završi, rezultat bi trebao biti u skladu s prethodno prikazanom korisničkom obrascu. Na primjer, izradite kontrolu tekstnog okvira klikom na Tekstualni okvir iz Toolboxa. Zatim možete povući tekstni okvir na Userform. Kada dođete do okvira za automobil, zapamtite da prije toga postavite dva okna.
4. Promijenite imena i opise kontrola prema donjoj tablici. Imena se koriste u Excel VBA kodu. Opisi su oni koji se pojavljuju na vašem zaslonu. Dobra je praksa promijeniti imena nadzora. Time ćete lakše čitati kôd. Da biste promijenili nazive i opise kontrola, kliknite Prikaz, prozor Svojstva i kliknite na svaku kontrolu.
Kontrolirati | Ime | Naslov |
---|---|---|
Userform | DinnerPlannerUserForm | Planer večere |
Tekstni okvir | NameTextBox | |
Tekstni okvir | PhoneTextBox | |
Popisni okvir | CityListBox | |
Kombinirani okvir | DinnerComboBox | |
Potvrdni okvir | DateCheckBox1 | 13. lipnja |
Potvrdni okvir | DateCheckBox2 | 20. lipnja |
Potvrdni okvir | DateCheckBox3 | 27. lipnja |
okvir | CarFrame | Automobil |
Gumb opcije | CarOptionButton1 | Da |
Gumb opcije | CarOptionButton2 | Ne |
Tekstni okvir | MoneyTextBox | |
Spin Button | MoneySpinButton | |
Gumb za naredbe | OKButton | u redu |
Gumb za naredbe | ClearButton | Čisto |
Gumb za naredbe | CancelButton | Otkazati |
7 naljepnica | Nema potrebe za promjenom | Ime :, broj telefona :, itd. |
Napomena: kombinirani okvir je padajući popis s kojeg korisnik može odabrati stavku ili ispuniti vlastiti izbor. Može se odabrati samo jedan od opcija.
Prikaži Userform
Da biste prikazali Userform, postavite gumb naredbe na radnom listu i dodajte sljedeću liniju koda:
DinnerPlannerUserForm.Show
End Sub
Sad ćemo stvoriti Sub UserForm_Initialize. Kada koristite metodu Prikaži za Korisnički obrazac, ovaj će podvrgnuti automatski.
1. Otvorite Visual Basic Editor.
2. U Project Exploreru desnom tipkom miša kliknite DinnerPlannerUserForm i zatim kliknite View Code.
3. Na lijevom padajućem popisu odaberite Userform. Na padajućem popisu odaberite Inicijaliziraj.
4. Dodajte sljedeće retke koda:
"Empty NameTextBox
NameTextBox.Value = ""
"Empty PhoneTextBox
PhoneTextBox.Value = ""
"Empty CityListBox
CityListBox.Clear
"Fill CityListBox
With CityListBox
.AddItem "San Francisco"
.AddItem "Oakland"
.AddItem "Richmond"
End With
"Empty DinnerComboBox
DinnerComboBox.Clear
"Fill DinnerComboBox
With DinnerComboBox
.AddItem "Italian"
.AddItem "Chinese"
.AddItem "Frites and Meat"
End With
"Uncheck DataCheckBoxes
DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False
"Set no car as default
CarOptionButton2.Value = True
"Empty MoneyTextBox
MoneyTextBox.Value = ""
"Set Focus on NameTextBox
NameTextBox.SetFocus
End Sub
Objašnjenje: prazne su tekstne kutije, popunjene okvire za popise i kombinirane kutije, potvrdne okvire nisu označene, itd.
Dodijelite makronaredbe
Sada smo stvorili prvi dio Korisničkog obrasca. Iako već izgleda uredno, ništa se neće dogoditi kada kliknemo gumbe za naredbe na korisničkom obrascu.
1. Otvorite Visual Basic Editor.
2. U Project Exploreru dvokliknite DinnerPlannerUserForm.
3. Dvaput kliknite na gumb Money spin.
4. Dodajte sljedeću liniju koda:
MoneyTextBox.Text = MoneySpinButton.Value
End Sub
Objašnjenje: ova linija koda ažurira tekstni okvir kada koristite gumb za spiniranje.
5. Dvaput kliknite na gumb OK.
6. Dodajte sljedeće retke koda:
Dim emptyRow As Long
"Make Sheet1 active
Sheet1.Activate
"Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
"Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value
If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption
If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption
If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption
If CarOptionButton1.Value = True Then
Cells(emptyRow, 6).Value = "Yes"
Else
Cells(emptyRow, 6).Value = "No"
End If
Cells(emptyRow, 7).Value = MoneyTextBox.Value
End Sub
Objašnjenje: prvo aktiviramo Sheet1. Zatim određujemo prazan red. Varijabla emptyRow prvi je prazan red i povećava se svaki put kada se doda zapis. Konačno, podatke iz Userforma prebacujemo na određene stupce prazne rute.
7. Dvaput kliknite na gumb Obriši.
8. Dodajte sljedeću retku koda:
Call UserForm_Initialize
End Sub
Objašnjenje: ova linija koda naziva Sub UserForm_Initialize kada kliknete gumb Obriši.
9. Dvaput kliknite na gumb Odustani.
10. Dodajte sljedeću liniju koda:
Unload Me
End Sub
Objašnjenje: ova linija koda zatvara Userform kada kliknete gumb Odustani.
Ispitajte Userform
Izađite iz Visual Basic Editor, unesite dolje prikazane naljepnice u red 1 i provjerite Userform.
Proizlaziti:
