/ / Excel VBA Userform

Excel VBA Userform

Lägg till kontrollerna | Visa användarformuläret | Tilldela makronerna | Testa användarformuläret

Detta kapitel lär dig hur du skapar en Excel VBA Userform. Användarformen vi ska skapa ser ut som följer:

Excel VBA Userform

Lägg till kontrollerna

För att lägga till kontrollerna i användarformen, utför följande steg.

1. Öppna Visual Basic Editor. Om Project Explorer inte är synligt klickar du på Visa, Project Explorer.

2. Klicka på Insert, Userform. Om Verktygslådan inte visas automatiskt klickar du på Visa, Verktygslåda. Din skärm bör ställas in enligt nedan.

Userform Screen Setup i Excel VBA

3. Lägg till de kontroller som anges i tabellen nedan. När detta har slutförts ska resultatet överensstämma med bilden av användarformen som visats tidigare. Skapa till exempel en textruta kontroll genom att klicka på Textbox från Verktygslådan. Därefter kan du dra en textruta i användarformuläret. När du kommer fram till bilramen, kom ihåg att dra denna ram först innan du placerar de två alternativknapparna i den.

4. Ändra namn och bildtexter på kontrollerna enligt tabellen nedan. Namnen används i Excel VBA-koden. Bildtext är de som visas på din skärm. Det är bra att ändra namnen på kontrollerna. Detta kommer att göra din kod lättare att läsa. För att ändra namn och bildtexter på kontrollerna, klicka på Visa, Egenskaper fönstret och klicka på varje kontroll.

Kontrollera namn Rubrik
user~~POS=TRUNC DinnerPlannerUserForm Middag Planner
Textruta NameTextBox
Textruta PhoneTextBox
Listrutan CityListBox
Combo Box DinnerComboBox
Kryssrutan DateCheckBox1 13 juni
Kryssrutan DateCheckBox2 20 juni
Kryssrutan DateCheckBox3 27 juni
Ram CarFrame Bil
Alternativknapp CarOptionButton1 Ja
Alternativknapp CarOptionButton2 Nej
Textruta MoneyTextBox
Spinnknapp MoneySpinButton
Kommandoknapp OK knappen ok
Kommandoknapp ClearButton Klar
Kommandoknapp CancelButton Annullera
7 Etiketter Inget behov av att ändra Namn :, Telefonnummer :, etc.

Obs! En kombinationsfält är en rullgardinslista från vilken en användare kan välja ett objekt eller fylla i sitt eget val. Endast en av alternativknapparna kan väljas.

Visa användarformuläret

För att visa användarformuläret, placera en kommandoknapp på ditt arbetsblad och lägg till följande kodrad:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Vi ska nu skapa Sub UserForm_Initialize. När du använder Visa-metoden för användarformuläret utförs denna del automatiskt.

1. Öppna Visual Basic Editor.

2. I Project Explorer högerklickar du på DinnerPlannerUserForm och klickar sedan på Visa kod.

3. Välj Användarformulär i den nedrullningsbara listrutan. Välj Initialize från den högra rullgardinsmenyn.

4. Lägg till följande kodlinjer:

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

Förklaring: textrutor tömmes, listrutor och kombinationsfält är fyllda, kryssrutorna är osvunna etc.

Tilldela makronerna

Vi har nu skapat den första delen av Userform. Även om det ser snyggt ut, kommer ingenting att hända ännu när vi klickar på kommandoknapparna på användarformuläret.

1. Öppna Visual Basic Editor.

2. Dubbelklicka på ProjectPlannerUserForm i Project Explorer.

3. Dubbelklicka på pengespinnknappen.

4. Lägg till följande kodrad:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Förklaring: Denna kodrad uppdaterar textrutan när du använder spinnknappen.

5. Dubbelklicka på OK-knappen.

6. Lägg till följande kodlinjer:

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

Förklaring: Först aktiverar vi Sheet1. Därefter bestämmer vi emptyRow. Variabeln emptyRow är den första tomma raden och ökar varje gång en post läggs till. Slutligen överför vi informationen från användarformen till de specifika kolumnerna i emptyRow.

7. Dubbelklicka på Rensa-knappen.

8. Lägg till följande kodrad:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Förklaring: Denna kodrad kallar Sub UserForm_Initialize när du klickar på Rensa-knappen.

9. Dubbelklicka på Avbryt-knappen.

10. Lägg till följande kodrad:

Private Sub CancelButton_Click()

Unload Me

End Sub

Förklaring: Den här kodlinjen stänger användarformuläret när du klickar på knappen Avbryt.

Testa användarformuläret

Avsluta Visual Basic Editor, skriv in etiketterna nedan till rad 1 och testa användarformuläret.

Resultat:

Testa användarformuläret

Läs också: