/ / Excel VBA Userform

Excel VBA Userform

Adja hozzá a vezérlőket | Mutassa be a használati utasítást | Hozzárendelje a makrókat | Vizsgálja meg a használati utasítást

Ez a fejezet megtanítja, hogyan hozzon létre egy Excel VBA Userform. A felhasználói forma, amelyet meg fogunk alkotni, a következőképpen néz ki:

Excel VBA Userform

Adja hozzá a vezérlőket

A vezérlők hozzáadása a felhasználói fiókhoz hajtsa végre a következő lépéseket.

1. Nyissa meg a Visual Basic Editor alkalmazást. Ha a Project Explorer nem látható, kattintson a Nézet, a Project Explorer elemre.

2. Kattintson a Beszúrás, Felhasználóformátum elemre. Ha az Eszköztár nem jelenik meg automatikusan, kattintson a Nézet, Eszköztár elemre. A képernyő beállítása az alábbiak szerint történik.

Userform képernyőbeállítás az Excel VBA-ban

3. Adja hozzá az alábbi táblázatban felsorolt ​​vezérlőket. Miután ez befejeződött, az eredménynek összhangban kell lennie a korábban bemutatott Userform képével. Például készítsen szövegdoboz-vezérlést az Eszköztárban lévő TextBox gombra kattintva. Ezután húzza a szövegmezőt a Userformon. Amikor megérkezik az Autókeretre, ne felejtse el először rajzolni ezt a keretet, mielőtt a két opciógombot elhelyezné.

4. Módosítsa az ellenőrzések nevét és feliratait az alábbi táblázat szerint. A neveket az Excel VBA kódban használják. Feliratok azok, amelyek a képernyőn jelennek meg. Jó gyakorlat az ellenőrzések nevének megváltoztatása. Ez megkönnyíti a kód olvasását. A vezérlők nevének és feliratainak módosításához kattintson a Nézet, a Tulajdonságok ablak elemre, és kattintson az egyes vezérlőkre.

Ellenőrzés Név Felirat
UserForm DinnerPlannerUserForm Vacsora tervező
Szövegdoboz NameTextBox
Szövegdoboz PhoneTextBox
List Box CityListBox
Kombinált doboz DinnerComboBox
Check Box DateCheckBox1 Június 13
Check Box DateCheckBox2 Június 20
Check Box DateCheckBox3 Június 27
Keret CarFrame Autó
Opció gomb CarOptionButton1 Igen
Opció gomb CarOptionButton2 Nem
Szövegdoboz MoneyTextBox
Spin gomb MoneySpinButton
Parancsgomb OKButton rendben
Parancsgomb ClearButton Egyértelmű
Parancsgomb CancelButton Megszünteti
7 Címkék Nem kell változtatni Név :, Telefonszám :, stb.

Megjegyzés: egy kombinált mező olyan legördülő lista, ahonnan a felhasználó választhat egy elemet, vagy kitöltheti saját választását. Csak az egyik opciógomb közül választhat.

Mutassa be a használati utasítást

A Userform megjelenítéséhez helyezze a parancsgombot a munkalapra, és adja hozzá a következő kódot:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Most létrehozzuk a Sub UserForm_Initialize-t. Amikor a Userform metódust használja, ez a rész automatikusan végrehajtásra kerül.

1. Nyissa meg a Visual Basic Editor alkalmazást.

2. A Project Explorerben kattintson a jobb gombbal a DinnerPlannerUserForm elemre, majd kattintson a Kód megtekintése parancsra.

3. A bal oldali legördülő listáról válassza a Userform (Felhasználóformátum) lehetőséget. Válassza az Initialize lehetőséget a jobb legördülő listából.

4. Adja hozzá a következő kódsorokat:

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

Magyarázat: a szövegdobozok kiürülnek, a listázó dobozok és kombinált dobozok kitöltődnek, a jelölőnégyzetek nincsenek kijelölve stb.

Hozzárendelje a makrókat

Most létrehoztuk a Userform első részét. Bár már jól néz ki, még akkor sem történik semmi, amikor rákattintunk a Userform parancs gombjaira.

1. Nyissa meg a Visual Basic Editor alkalmazást.

2. A Project Explorer programban kattintson duplán a DinnerPlannerUserForm elemre.

3. Kattintson duplán a Money spin gombra.

4. Adja hozzá a következő kódsor:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Magyarázat: ez a kódsor a spin gomb használatakor frissíti a szövegmezőt.

5. Kattintson duplán az OK gombra.

6. Adja hozzá a következő kódsorokat:

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

Magyarázat: először aktiváljuk a Sheet1-et. Ezután meghatározzuk az emptyRow értéket. Az emptyRow változó az első üres sor, amely minden rekord hozzáadásakor növekszik. Végül átmásoljuk az adatokat a Userform-ból az emptyRow konkrét oszlopaira.

7. Kattintson duplán a Clear (Törlés) gombra.

8. Adja hozzá a következő kódsor:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Magyarázat: ez a kódsor felhívja a Sub UserForm_Initialize parancsot, ha a Törlés gombra kattint.

9. Kattintson kétszer a Mégse gombra.

10. Adja hozzá a következő kódot:

Private Sub CancelButton_Click()

Unload Me

End Sub

Magyarázat: ez a kódsor bezárja a Userform-ot, ha a Mégse gombra kattint.

Vizsgálja meg a használati utasítást

Lépjen ki a Visual Basic Editorból, írja be az alább látható címkéket az 1. sorba, és próbálja meg a Userform-ot.

Eredmény:

Vizsgálja meg a használati utasítást

Szintén olvasható: