/ / Excel VBA Userform

Excel VBA Userform

Pridajte ovládacie prvky | Zobraziť Userform | Priraďte makrá | Otestujte Formu používateľa

Táto kapitola vás učí, ako vytvoriť Excel VBA Userform, Forma User, ktorú chceme vytvoriť, vyzerá takto:

Excel VBA Userform

Pridajte ovládacie prvky

Ak chcete pridať ovládacie prvky do Userform, vykonajte nasledujúce kroky.

1. Otvorte Editor jazyka. Ak nástroj Project Explorer nie je viditeľný, kliknite na položku Zobraziť, Project Explorer.

2. Kliknite na Insert, Userform. Ak sa panel nástrojov nezobrazí automaticky, kliknite na položku Zobraziť, panel s nástrojmi. Obrazovka by mala byť nastavená tak, ako je uvedené nižšie.

Nastavenie obrazovky používateľa v programe Excel VBA

3. Pridajte ovládacie prvky uvedené v tabuľke nižšie. Po dokončení tohto výsledku by mal byť výsledok v súlade s obrázkom užívateľa, ktorý je zobrazený skôr. Napríklad vytvorte ovládací prvok textového poľa kliknutím na TextBox z panelu nástrojov. Potom môžete pretiahnuť textové pole na Userform. Keď dorazíte do rámčeka Autá, nezabudnite najprv nakresliť tento rám ešte pred tým, ako v ňom umiestnite dve voľby.

4. Zmeňte názvy a popisy ovládacích prvkov podľa nasledujúcej tabuľky. Názvy sa používajú v kóde programu Excel VBA. Titulky sú tie, ktoré sa zobrazujú na vašej obrazovke. Správna prax je zmeniť mená ovládacích prvkov. To vám uľahčí čítanie kódu. Ak chcete zmeniť názvy a popisy ovládacích prvkov, kliknite na položku Zobraziť, okno Vlastnosti a kliknite na každý ovládací prvok.

ovládanie názov titulok
UserForm DinnerPlannerUserForm Plánovač večere
Textové pole NameTextBox
Textové pole PhoneTextBox
Zoznam kolóniek CityListBox
Kombinované pole DinnerComboBox
Začiarknite políčko DateCheckBox1 13. júna
Začiarknite políčko DateCheckBox2 20. júna
Začiarknite políčko DateCheckBox3 27. júna
rám CarFrame Auto
Tlačidlo voľby CarOptionButton1 Áno
Tlačidlo voľby CarOptionButton2 žiadny
Textové pole MoneyTextBox
Tlačidlo Spin MoneySpinButton
Tlačidlo príkazu tlačidla ok OK
Tlačidlo príkazu ClearButton jasný
Tlačidlo príkazu CancelButton Zrušiť
7 Štítky Nie je potrebné meniť Názov :, Telefónne číslo :, atď.

Poznámka: rozbaľovací zoznam je rozbaľovací zoznam, z ktorého môže používateľ vybrať položku alebo vyplniť svoj vlastný výber. Môžete vybrať len jedno z tlačidiel volieb.

Zobraziť Userform

Ak chcete zobraziť Userform, umiestnite na pracovný hárok príkazové tlačidlo a pridajte nasledujúci riadok kódu:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Teraz vytvoríme Sub UserForm_Initialize. Ak použijete metódu Show for Userform, táto podstata sa automaticky vykoná.

1. Otvorte Editor jazyka.

2. V programe Project Explorer kliknite pravým tlačidlom na DinnerPlannerUserForm a potom kliknite na položku View Code.

3. V ľavom rozbaľovacom zozname vyberte položku Userform. V pravom rozbaľovacom zozname vyberte možnosť Inicializovať.

4. Pridajte nasledujúce riadky kódu:

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

Vysvetlenie: textové polia sa vyprázdňujú, zoznamy a pole so zoznamami sú vyplnené, políčka nie sú začiarknuté atď.

Priraďte makrá

Teraz sme vytvorili prvú časť Userform. Aj keď to vyzerá dobre, nič sa nestane, keď klikneme na tlačidlá príkazu na Userform.

1. Otvorte Editor jazyka.

2. V programe Project Explorer dvakrát kliknite na DinnerPlannerUserForm.

3. Dvakrát kliknite na tlačidlo Spinning Money.

4. Pridajte nasledujúci riadok kódu:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Vysvetlenie: Tento riadok kódu aktualizuje textové pole, keď používate tlačidlo odstreďovania.

5. Dvakrát kliknite na tlačidlo OK.

6. Pridajte nasledujúce riadky kódu:

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

Vysvetlenie: najprv aktivujeme list1. Ďalej určujeme emptyRow. Premenná emptyRow je prvý prázdny riadok a zvyšuje sa pri každom pridaní záznamu. Nakoniec prenesieme informácie z Userform do konkrétnych stĺpcov emptyRow.

7. Dvakrát kliknite na tlačidlo Vymazať.

8. Pridajte nasledujúci riadok kódu:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Vysvetlenie: tento kódový riadok vyvolá po kliknutí na tlačidlo Vymazať Sub UserForm_Initialize.

9. Dvakrát kliknite na tlačidlo Zrušiť.

10. Pridajte nasledujúci riadok kódu:

Private Sub CancelButton_Click()

Unload Me

End Sub

Vysvetlenie: tento riadok kódu zatvára Userform po kliknutí na tlačidlo Zrušiť.

Otestujte Formu používateľa

Ukončite Editor Visual Basic, zadajte nižšie uvedené štítky do riadku 1 a otestujte Userform.

výsledok:

Otestujte Formu používateľa

Tiež si prečítajte: