/ / Excel VBA Userform, jossa on useita sivuja

Excel VBA Userform, jossa on useita sivuja

Seuraavassa tarkastelemme ohjelmaa Excel VBA: ssa, joka luo käyttäjälomakkeen, joka sisältää useita sivuja. Tämä käyttäjäformaatti sisältää myös kuvia.

Monisivuinen hallinta sisältää kaksi sivua. Sivulla 1 käyttäjä voi täyttää henkilökohtaiset tietonsa. Sivulla 2 käyttäjä voi ilmoittaa maalauksen, jota hän pitää eniten.

Käyttäjäformaatti Sivu 1
Käyttäjäformaatti Sivu 2

Tee tämä Käyttäjäluettelo seuraavasti.

1. Avaa Visual Basic -editori. Jos Project Explorer ei ole näkyvissä, valitse View, Project Explorer.

2. Napsauta Insert, Userform. Jos työkalupakki ei tule näkyviin automaattisesti, valitse Näytä, työkalupakki. Näyttösi on määritettävä alla.

Userform-näytön asetukset Excel VBA: ssa

3. Lisää monisivuinen ohjain, tarrat, tekstiruudut (ensimmäinen yläosassa, toinen alla ensimmäinen), ruutu, lisävarustepainikkeet (ensimmäinen vasemmalla, toinen oikealla), luetteloruutu, kuvaohjaus ja komentopainike. Kun tämä on valmis, tuloksen on oltava johdonmukainen aikaisemmin esitetyn käyttäjämuodon tyhjän version kanssa. Luo esimerkiksi Multipage-ohjaus napsauttamalla Työkalupakista Multipage. Seuraavaksi voit vetää Multipage-ohjauksen Userform-muodossa. Kun saavut Gender-kehykseen, muista piirtää tämä kehys ennen kuin asetat siihen kaksi vaihtoehtoa.

4. Voit muuttaa ohjaimien nimeä ja kuvatekstejä. Nimet käytetään Excel VBA -koodissa. Kuvatekstit ovat niitä, jotka näkyvät näytölläsi. On hyvä käytäntö muuttaa ohjaimien nimet, mutta se ei ole tarpeen tässä, koska tässä esimerkissä on vain muutama valvonta. Jos haluat vaihtaa Userform, Multipage -välilehdet, tarrat, kehykset, lisävarustepainikkeet ja komentopainikkeet, napsauta Näytä, Ominaisuudet-ikkuna ja napsauta jokaista ohjausta.

5. Kun haluat näyttää Userform, aseta komentokehote laskentatauluun ja lisää seuraava koodirivi:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Aiomme nyt luoda Sub UserForm_Initialize. Kun käytät User-muodon Show-menetelmää, tämä osa suoritetaan automaattisesti.

6. Avaa Visual Basic -editori.

7. Napsauta Project Explorer -ohjelmaa hiiren kakkospainikkeella UserForm1 ja sen jälkeen Näytä koodi.

8. Valitse Käyttäjätunnus vasemmalta avattavasta luettelosta. Valitse avattavasta oikeasta alasvetovalikosta Aloita.

9. Lisää seuraavat koodiluokat:

Private Sub UserForm_Initialize()

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

End Sub

Selitys: luetteloruudussa sivulla 2 täytetään.

Olemme nyt luoneet Userformin ensimmäisen osan. Vaikka se näyttää siistinä jo, mikään ei tapahdu vielä, kun valitaan kohde luetteloruutuun tai napsautamme OK-painiketta.

10. Lataa kuvat (tämän sivun oikealla puolella) ja lisää ne "C: testiin"

11. Kaksoisnapsauta Project Explorerissa UserForm1-ohjelmaa.

12. Kaksoisnapsauta luetteloruudusta.

13. Lisää seuraavat koodiluokat:

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

Selitys: nämä koodirivit lataavat kuvan riippuen luetteloruudusta valitusta kohteesta.

14. Kaksoisnapsauta OK-painiketta.

15. Lisää seuraavat koodiluokat:

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

Selitys: Ensin aktivoimme Sheet1. Seuraavaksi määritämme emptyRow. Muuttuja emptyRow on ensimmäinen tyhjä rivi ja lisää joka kerta, kun levy lisätään. Seuraavaksi siirrämme tiedot Userform-tietueesta tyhjän rivin tiettyihin sarakkeisiin. Lopuksi suljetaan Userform.

16. Poistu Visual Basic -editorista syöttämällä alla olevat tarrat riviin 1 ja testaamalla Userform.

Tulos:

Testaa Userform

Lue myös: