/ / Excel VBA Userform

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:

Excel VBA Userform

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.

Postavljanje zaslona korisničkog formata u programu Excel VBA

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:

Private Sub CommandButton1_Click()

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:

Private Sub UserForm_Initialize()

"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:

Private Sub MoneySpinButton_Change()

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:

Private Sub OKButton_Click()

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:

Private Sub ClearButton_Click()

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:

Private Sub CancelButton_Click()

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:

Ispitajte Userform

Također pročitajte: