/ / Excel VBA Userform s više stranica

Excel VBA Userform s višestrukim stranicama

U nastavku ćemo pogledati program u programu Excel VBA koji stvara korisnički obrazac koji sadrži više stranica. Ovaj korisni oblik također sadrži slike.

Multipage Control sadrži dvije stranice. Na stranici 1 korisnik može ispuniti svoje osobne podatke. Na stranici 2, korisnik može naznačiti koja slika najviše voli.

Korisnički oblik stranice 1
Korisnički oblik 2

Da biste stvorili ovaj 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 višenamjensku kontrolu, oznake, tekstne okvire (prvi na vrhu, drugi ispod prve), okvir, gumbi opcija (prvi na lijevoj strani, drugi na desnoj strani), popisni okvir, gumb za upravljanje slikom i naredbu. Kada to završi, rezultat bi trebao biti u skladu s praznom verzijom Userforma prikazanog ranije. Na primjer, izradite višestruku kontrolu klikom na Multipage (Multipage) iz Toolboxa. Zatim možete povući višeslojnu kontrolu na Userform. Kada stignete na spolni okvir, zapamtite da najprije nacrtam ovaj okvir prije nego stavite dvije opcijske tipke u nju.

4. Možete promijeniti nazive i opise kontrola. Imena se koriste u Excel VBA kodu. Opisi su oni koji se pojavljuju na vašem zaslonu. Dobra je praksa mijenjati nazive kontrolnih jedinica, ali ovdje nije nužno jer imamo samo nekoliko kontrola u ovom primjeru. Da biste promijenili opis Userform, Multipage kartica, oznaka, okvira, gumba opcija i gumba naredbe, kliknite View (Prikaži), Prozor svojstava i kliknite na svaku kontrolu.

5. Da biste prikazali Userform, stavite gumb naredbe na radni list i dodajte sljedeću liniju koda:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Sad ćemo stvoriti Sub UserForm_Initialize. Kada koristite metodu Prikaži za Korisnički obrazac, ovaj će podvrgnuti automatski.

6. Otvorite Visual Basic Editor.

7. U Project Exploreru desnom tipkom miša kliknite UserForm1 i zatim kliknite View Code.

8. S padajućeg popisa s lijeve strane odaberite Userform. Na padajućem popisu odaberite Inicijaliziraj.

9. Dodajte sljedeće retke koda:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

Objašnjenje: popuniti okvir popisa na 2. stranici.

Sada smo stvorili prvi dio Korisničkog obrasca. Iako već izgleda uredno, ništa se neće dogoditi kada odaberemo stavku iz okvira za popise ili kada kliknemo gumb U redu.

10. Preuzmite slike (desna strana ove stranice) i dodajte ih na "C: test"

11. U Project Exploreru dvokliknite UserForm1.

12. Dvaput kliknite na okvir popisa.

13. Dodajte sljedeće retke koda:

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Objašnjenje: ove linije koda učitavaju sliku ovisno o odabranoj stavci u okviru popisa.

14. Dvaput kliknite na gumb OK.

15. Dodajte sljedeće retke koda:

Private Sub CommandButton1_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 = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

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. Zatim ćemo podatke iz Userforma prenijeti na određene stupce prazne rute. Konačno, zatvorimo Userform.

16. Izađite iz Visual Basic Editor, unesite dolje prikazane naljepnice u red 1 i provjerite Userform.

Proizlaziti:

Ispitajte Userform

Također pročitajte: