/ / Excel VBA Userform med flere sider

Excel VBA Userform med flere sider

Nedenfor ser vi på et program i Excel VBA som lager en brukerform som inneholder flere sider. Denne brukerformen inneholder også bilder.

Multikontrollen inneholder to sider. På side 1 kan brukeren fylle ut sin personlige informasjon. På side 2 kan brukeren angi hvilket maleri han / hun liker mest.

Brukerform Side 1
Brukerform Side 2

For å opprette denne brukerformen, utfør følgende trinn.

1. Åpne Visual Basic Editor. Hvis Project Explorer ikke er synlig, klikker du på Vis, Project Explorer.

2. Klikk på Sett inn, Brukerform. Hvis Verktøykassen ikke vises automatisk, klikker du på Vis, Verktøykasse. Skjermen din bør settes opp som nedenfor.

Userform Screen Setup i Excel VBA

3. Legg til flerkontroll, etiketter, tekstbokser (først øverst, den andre under den første), rammen, alternativknappene (først til venstre, den andre til høyre), listeboks, bildekontroll og kommandoknapp. Når dette er fullført, bør resultatet være i tråd med den tomme versjonen av brukerformen som er vist tidligere. For eksempel, opprett en flerkontroll ved å klikke på Flersidig fra Verktøykassen. Deretter kan du dra en flerkontroll på brukerformen. Når du kommer til kjønnrammen, husk å tegne denne rammen først før du plasserer de to valgknappene i den.

4. Du kan endre navnene og bildeteksten til kontrollene. Navnene brukes i Excel VBA-koden. Undertekster er de som vises på skjermen. Det er god praksis å endre navnene på kontrollene, men det er ikke nødvendig her fordi vi bare har noen få kontroller i dette eksemplet. Hvis du vil endre bildeteksten til brukerformat, flersidetabellene, etikettene, rammen, alternativknappene og kommandoknappen, klikker du på Vis, Egenskaper-vinduet og klikker på hver kontroll.

5. For å vise brukerformatet, legg en kommandoknapp på regnearket og legg til følgende kodelinje:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Vi skal nå lage Sub UserForm_Initialize. Når du bruker Show-metoden for brukerformularen, blir denne delen automatisk utført.

6. Åpne Visual Basic Editor.

7. I Project Explorer, høyreklikk på UserForm1 og klikk deretter Vis kode.

8. Velg Brukerform fra den venstre rullegardinlisten. Velg Initialize fra den høyre rullegardinlisten.

9. Legg til følgende kodelinjer:

Private Sub UserForm_Initialize()

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

End Sub

Forklaring: listeboksen på side 2 vil bli fylt ut.

Vi har nå opprettet den første delen av brukerformen. Selv om det ser pent ut, vil ingenting skje ennå når vi velger et element fra listeboksen eller når vi klikker på OK-knappen.

10. Last ned bildene (høyre side av denne siden) og legg dem til "C: test"

11. Dobbeltklikk på UserForm1 i Project Explorer.

12. Dobbeltklikk på listeboksen.

13. Legg til følgende kodelinjer:

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

Forklaring: Disse kodelinjene laster et bilde avhengig av det valgte elementet i listeboksen.

14. Dobbeltklikk på OK-knappen.

15. Legg til følgende kodelinjer:

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

Forklaring: Først aktiverer vi Sheet1. Deretter bestemmer vi emptyRow. Varianten emptyRow er den første tomme raden og øker hver gang en plate legges til. Deretter overfører vi informasjonen fra brukerformularen til de spesifikke kolonnene i emptyRow. Til slutt lukker vi Userform.

16. Avslutt Visual Basic Editor, skriv inn etikettene som er vist nedenfor i rad 1 og test brukerformatet.

Resultat:

Test brukerformatet

Les også: