/ / Excel VBA Userform

Excel VBA Userform

Lisää ohjaimet | Näytä käyttäjätunnus | Määritä makrot | Testaa Userform

Tässä luvussa kuvataan, kuinka voit luoda Excel VBA Userform. Käyttäjäformaatti, jonka aiomme luoda, näyttää seuraavaa:

Excel VBA Userform

Lisää ohjaimet

Jos haluat lisätä ohjaimet Käyttäjämalliksi, suorita seuraavat vaiheet.

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ää alla olevassa taulukossa luetellut säätimet. Kun tämä on saatu päätökseen, tuloksen on oltava johdonmukainen aikaisemmin esitetyn käyttäjätiedon kuvan kanssa. Luo esimerkiksi tekstilaatikon ohjaus klikkaamalla Toolbox-työkalua. Seuraavaksi voit vetää tekstiruudun Userform-muodossa. Kun saavut autokehykseen, muista piirtää tämä kehys ensin, ennen kuin asetat siihen kaksi lisävarustepainiketta.

4. Muuta ohjaimien nimet ja kuvatekstit alla olevan taulukon mukaisesti. 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. Tämä helpottaa koodin lukemista. Jos haluat muuttaa ohjaimien nimeä ja kuvatekstejä, valitse Näytä, Ominaisuudet-ikkuna ja napsauta jokaista ohjausta.

ohjaus Nimi kuvateksti
käyttäjälomakkeen DinnerPlannerUserForm Illallinen Planner
Tekstilaatikko NameTextBox
Tekstilaatikko PhoneTextBox
List Box CityListBox
Yhdistelmälaatikko DinnerComboBox
Valintaruutu DateCheckBox1 13. kesäkuuta
Valintaruutu DateCheckBox2 20. kesäkuuta
Valintaruutu DateCheckBox3 27. kesäkuuta
kehys CarFrame Auto
Vaihtoehtoinen painike CarOptionButton1 Joo
Vaihtoehtoinen painike CarOptionButton2 Ei
Tekstilaatikko MoneyTextBox
Spin-painike MoneySpinButton
Komento-painike OKpainiketta kunnossa
Komento-painike ClearButton Asia selvä
Komento-painike CancelButton Peruuttaa
7 tarraa Ei tarvitse muuttaa Nimi :, Puhelinnumero: jne.

Huomaa: yhdistelmäruutu on avattava luettelo, josta käyttäjä voi valita kohteen tai täyttää oman valintansa. Vain yksi valintapainikkeista voidaan valita.

Näytä käyttäjätunnus

Jos haluat näyttää Userform, aseta komentokehote laskentatauluun ja lisää seuraava koodirivi:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

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

1. Avaa Visual Basic -editori.

2. Valitse Project Explorer -ohjelmassa hiiren kakkospainikkeella DinnerPlannerUserForm ja napsauta View Code.

3. Valitse Käyttäjätunnus vasemmasta avattavasta luettelosta. Valitse avattavasta oikeasta alasvetovalikosta Aloita.

4. Lisää seuraavat koodiluokat:

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

Selitys: tekstiruudut tyhjennetään, luetteloruudut ja yhdistelmävalot täytetään, valintaruudut eivät ole valittuja jne.

Määritä makrot

Olemme nyt luoneet Userformin ensimmäisen osan. Vaikka se näyttää hyvältä jo, mikään ei tapahdu vielä, kun napsautamme Userformin komentopainikkeita.

1. Avaa Visual Basic -editori.

2. Kaksoisnapsauta Project Explorerissa DinnerPlannerUserForm-ohjelmaa.

3. Kaksoisnapsauta Money spin -painiketta.

4. Lisää seuraava koodirivi:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Selitys: tämä koodirivi päivittää tekstiruutua, kun käytät spin-painiketta.

5. Kaksoisnapsauta OK-painiketta.

6. Lisää seuraavat koodiluokat:

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

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. Lopuksi siirrämme tiedot Userform-tietueesta tyhjälle riville.

7. Kaksoisnapsauta Clear-painiketta.

8. Lisää seuraava koodirivi:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Selitys: tämä koodirivi kutsuu Sub UserForm_Initialize -ohjelmaa, kun napsautat Tyhjennä-painiketta.

9. Kaksoisnapsauta Peruuta-painiketta.

10. Lisää seuraava koodirivi:

Private Sub CancelButton_Click()

Unload Me

End Sub

Selitys: tämä koodirivi sulkee käyttäjätiedot, kun napsautat Peruuta-painiketta.

Testaa Userform

Poistu Visual Basic -editorista, anna alla olevat tunnisteet riville 1 ja testata Userform.

Tulos:

Testaa Userform

Lue myös: