/ / Excel VBA višeslojni kombinirani okvir

Excel VBA višeslojni kombinirani okvir

U nastavku ćemo pogledati program u Excel VBA koji stvara Korisnički obrazac koji sadrži a višenamjenski kombinirani okvir.

Korisnički obrazac koji ćemo stvoriti izgleda ovako:

Višenamjenski kombinirani okvir u programu Excel VBA

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 gumbe oznake, kombiniranog okvira i naredbi. Kada to završi, rezultat bi trebao biti u skladu s prethodno prikazanom korisničkom obrascu. Na primjer, stvorite kontrolu kombiniranog okvira klikom na ComboBox iz Toolboxa. Zatim možete povući kombinirani okvir na Userform.

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 naslov gumba Userform, oznaka i naredbe, kliknite Prikaz, 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()

ComboBox1.ColumnCount = 2

Dim Films(1 To 5, 1 To 2) As String
Dim i As Integer, j As Integer

Films(1, 1) = "Lord of the Rings"
Films(2, 1) = "Speed"
Films(3, 1) = "Star Wars"
Films(4, 1) = "The Godfather"
Films(5, 1) = "Pulp Fiction"

Films(1, 2) = "Adventure"
Films(2, 2) = "Action"
Films(3, 2) = "Sci-Fi"
Films(4, 2) = "Crime"
Films(5, 2) = "Drama"

ComboBox1.List = Films

End Sub

Obrazloženje: Prva linija koda postavlja broj stupaca kombiniranog okvira na 2. Umjesto da postavite broj stupaca tijekom izvođenja, možete i konfigurirati ovu postavku prilikom dizajnerskog vremena. Da biste to postigli, desnom tipkom miša kliknite kontrolu kombiniranog okvira, kliknite Svojstva i postavite svojstvo ColumnCount na 2. Dalje, izjavljujemo i inicijaliziramo dvodimenzionalni niz. Zadnja linija koda dodjeljuje polje u kombinirani okvir.

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.

10. U Project Exploreru dvaput kliknite UserForm1.

11. Dvaput kliknite na gumb OK.

12. Dodajte sljedeće retke koda:

Private Sub CommandButton1_Click()

Unload Me

MsgBox "You selected " & ComboBox1.Value

On Error Resume Next
MsgBox "You like " & ComboBox1.Column(1) & " movies"

End Sub

Bilješka: ove linije koda zatvaraju Excel VBA Userform i prikazuju odabranu stavku i žanr. Izjava "On Error Resume Next" zanemaruje pogrešku kada korisnik napuni svoj film (u ovom slučaju nema dostupnog žanra).

13. Dvaput kliknite na gumb Odustani.

14. Dodajte sljedeću retku koda:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Rezultat kada odaberete Brzina i kliknite U redu.

Rezultat višekonomskih kombiniranih okvira

Rezultat višekonomskih kombiniranih okvira

Također pročitajte: