/ / Excel VBA Brugerformular

Excel VBA Brugerformular

Tilføj kontrollerne | Vis brugerformularen | Tildel makroerne | Test brugerformularen

Dette kapitel lærer dig, hvordan du opretter en Excel VBA Brugerformular. Brugerformularen, vi skal oprette, ser ud som følger:

Excel VBA Brugerformular

Tilføj kontrollerne

For at tilføje kontrollerne til brugerformularen, udfør følgende trin.

1. Åbn Visual Basic Editor. Hvis Project Explorer ikke er synlig, skal du klikke på Vis, Project Explorer.

2. Klik på Indsæt, Brugerformular. Hvis værktøjskassen ikke vises automatisk, skal du klikke på Vis, Værktøjskasse. Din skærm skal opsættes som nedenfor.

Brugerform Screen Setup i Excel VBA

3. Tilføj de kontroller, der er angivet i nedenstående tabel. Når dette er gennemført, skal resultatet være i overensstemmelse med billedet af den tidligere viste brugerformular. For eksempel opret en tekstboks kontrol ved at klikke på TextBox fra Toolbox. Derefter kan du trække en tekstboks på Brugerformularen. Når du kommer til bilrammen, skal du huske at tegne denne ramme først, inden du placerer de to valgknapper i den.

4. Skift navnene og billedteksten af ​​kontrollerne i henhold til nedenstående tabel. Navne bruges i Excel VBA-koden. Undertekster er dem, der vises på din skærm. Det er god praksis at ændre navnene på kontrollerne. Dette vil gøre din kode lettere at læse. Hvis du vil ændre navne og billedtekster for kontrollerne, skal du klikke på Vis, Egenskaber Vindue og klikke på hver kontrol.

Kontrollere Navn Billedtekst
UserForm DinnerPlannerUserForm Middag Planner
Tekstboks NameTextBox
Tekstboks PhoneTextBox
Listeboks CityListBox
Kombinationsfelt DinnerComboBox
Afkrydsningsfelt DateCheckBox1 13. juni
Afkrydsningsfelt DateCheckBox2 20. juni
Afkrydsningsfelt DateCheckBox3 27. juni
Ramme CarFrame Bil
Optionsknap CarOptionButton1 Ja
Optionsknap CarOptionButton2 Ingen
Tekstboks MoneyTextBox
Spin Button MoneySpinButton
Kommandoknap knappen OK Okay
Kommandoknap ClearButton Klar
Kommandoknap CancelButton Afbestille
7 etiketter Ingen grund til at ændre Navn :, Telefonnummer :, osv.

Bemærk: En kombinationsboks er en rullemenu fra, hvor en bruger kan vælge et emne eller udfylde sit eget valg. Kun en af ​​valgknapperne kan vælges.

Vis brugerformularen

For at vise brugerformularen skal du placere en kommandoknap på dit regneark og tilføje følgende kodelinje:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Vi skal nu oprette Sub UserForm_Initialize. Når du bruger visningsmetoden til brugerformularen, udføres denne under automatisk.

1. Åbn Visual Basic Editor.

2. I Project Explorer skal du højreklikke på DinnerPlannerUserForm og derefter klikke på Vis kode.

3. Vælg Brugerform fra den venstre rullemenu. Vælg Initialize fra den højre rulleliste.

4. Tilføj følgende kode linjer:

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

Forklaring: tekstbokse tømmes, listebokser og kombinationsbokse er fyldt, afkrydsningsfelter er ikke markeret osv.

Tildel makroerne

Vi har nu oprettet den første del af brugerformularen. Selvom det ser pænt ud, sker der intet endnu, når vi klikker på kommandoknapperne på Brugerformularen.

1. Åbn Visual Basic Editor.

2. Dobbeltklik på DinnerPlannerUserForm i Project Explorer.

3. Dobbeltklik på Money spin-knappen.

4. Tilføj følgende kode linje:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Forklaring: Denne kode linje opdaterer tekstfeltet, når du bruger spin-knappen.

5. Dobbeltklik på OK-knappen.

6. Tilføj følgende kode linjer:

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

Forklaring: Først aktiverer vi Sheet1. Dernæst bestemmer vi emptyRow. Variabel emptyRow er den første tomme række og øges hver gang en post tilføjes. Endelig overfører vi informationen fra brugerformularen til de specifikke kolonner af emptyRow.

7. Dobbeltklik på ryd knappen.

8. Tilføj følgende kode linje:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Forklaring: Denne kode linje kalder Sub UserForm_Initialize, når du klikker på knappen Clear.

9. Dobbeltklik på knappen Annuller.

10. Tilføj følgende kode linje:

Private Sub CancelButton_Click()

Unload Me

End Sub

Forklaring: Denne kode linje lukker brugerformularen, når du klikker på knappen Annuller.

Test brugerformularen

Afslut Visual Basic Editor, indtast etiketterne vist nedenfor i række 1 og test brugerformularen.

Resultat:

Test brugerformularen

Læs også: