/ / Excel VBA Userform

Excel VBA Userform

Voeg de besturingselementen toe | Toon het gebruikersformulier | Wijs de macro's toe | Test het gebruikersformulier

Dit hoofdstuk leert je hoe je een Excel VBA Userform. Het Userform dat we gaan maken ziet er als volgt uit:

Excel VBA Userform

Voeg de besturingselementen toe

Voer de volgende stappen uit om de bedieningselementen aan het gebruikersformulier toe te voegen.

1. Open de Visual Basic-editor. Als de Projectverkenner niet zichtbaar is, klikt u op Beeld, Projectverkenner.

2. Klik op Invoegen, Gebruikersformulier. Als de Toolbox niet automatisch verschijnt, klikt u op Beeld, Werkset. Uw scherm moet worden ingesteld zoals hieronder.

Gebruikersformulier Scherminstellingen in Excel VBA

3. Voeg de besturingselementen toe die worden vermeld in de onderstaande tabel. Zodra dit is voltooid, moet het resultaat consistent zijn met de afbeelding van het eerder weergegeven gebruikersformulier. U kunt bijvoorbeeld een tekstvakbesturingselement maken door in de werkset op Tekstvak te klikken. Vervolgens kunt u een tekstvak op het gebruikersformulier slepen. Wanneer u bij het Car-frame arriveert, moet u dit frame eerst tekenen voordat u de twee optieknoppen erin plaatst.

4. Wijzig de namen en bijschriften van de bedieningselementen volgens de onderstaande tabel. Namen worden gebruikt in de Excel VBA-code. Onderschriften zijn diegene die op je scherm verschijnen. Het is een goede gewoonte om de namen van de bedieningselementen te wijzigen. Hierdoor wordt uw code beter leesbaar. Als u de namen en bijschriften van de bedieningselementen wilt wijzigen, klikt u op Beeld, Venster Eigenschappen en klikt u op elk besturingselement.

Controle Naam Onderschrift
Userform DinnerPlannerUserForm Dinner Planner
Tekstvak NameTextBox
Tekstvak PhoneTextBox
Keuzelijst CityListBox
Keuzelijst met invoervak DinnerComboBox
Selectievakje DateCheckBox1 13 juni
Selectievakje DateCheckBox2 20 juni
Selectievakje DateCheckBox3 27 juni
omlijsting CarFrame Auto
Optieknop CarOptionButton1 Ja
Optieknop CarOptionButton2 Nee
Tekstvak MoneyTextBox
Draai Knop MoneySpinButton
Command knop okButton OK
Command knop ClearButton Duidelijk
Command knop CancelButton annuleren
7 etiketten Het is niet nodig om te veranderen Naam :, Telefoonnummer :, etc.

Opmerking: een keuzelijst met invoervak ​​is een vervolgkeuzelijst van waaruit een gebruiker een item kan selecteren of zijn / haar eigen keuze kan invullen. Er kan slechts een van de optieknoppen worden geselecteerd.

Toon het gebruikersformulier

Om het gebruikersformulier weer te geven, plaatst u een opdrachtknop op uw werkblad en voegt u de volgende coderegel toe:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

We gaan nu de Sub UserForm_Initialize maken. Wanneer u de methode Show voor het Userform gebruikt, wordt deze sub automatisch uitgevoerd.

1. Open de Visual Basic-editor.

2. Klik in de Projectverkenner rechts op DinnerPlannerUserForm en klik vervolgens op Code bekijken.

3. Kies Userform in de vervolgkeuzelijst links. Kies Initialiseren in de vervolgkeuzelijst.

4. Voeg de volgende coderegels toe:

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

Uitleg: tekstvakken worden leeggemaakt, keuzelijsten en keuzelijsten worden gevuld, selectievakjes zijn uitgeschakeld, enzovoort

Wijs de macro's toe

We hebben nu het eerste deel van het gebruikersformulier gemaakt. Hoewel het er al goed uitziet, zal er nog niets gebeuren als we op de opdrachtknoppen op het gebruikersformulier klikken.

1. Open de Visual Basic-editor.

2. Dubbelklik in de Projectverkenner op DinnerPlannerUserForm.

3. Dubbelklik op de knop Money spin.

4. Voeg de volgende coderegel toe:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Uitleg: deze coderegel werkt het tekstvak bij wanneer u de draaiknop gebruikt.

5. Dubbelklik op de knop OK.

6. Voeg de volgende coderegels toe:

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

Uitleg: eerst activeren we Blad1. Vervolgens bepalen we emptyRow. De variabele emptyRow is de eerste lege rij en neemt toe telkens wanneer een record wordt toegevoegd. Ten slotte zetten we de informatie over van het gebruikersformulier naar de specifieke kolommen van emptyRow.

7. Dubbelklik op de knop Wissen.

8. Voeg de volgende coderegel toe:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Uitleg: deze coderegel roept Sub UserForm_Initialize aan wanneer u op de knop Wissen klikt.

9. Dubbelklik op de knop Annuleren.

10. Voeg de volgende coderegel toe:

Private Sub CancelButton_Click()

Unload Me

End Sub

Uitleg: deze coderegel sluit het gebruikersformulier af wanneer u op de knop Annuleren klikt.

Test het gebruikersformulier

Sluit de Visual Basic-editor, voer de onderstaande labels in rij 1 in en test het gebruikersformulier.

Resultaat:

Test het gebruikersformulier

Lees ook: