/ / Formatul de utilizator Excel VBA

Excel VBA Userform

Adăugați comenzile | Afișați formatul de utilizator | Alocați macrocomenzile | Testați Formatul de utilizare

Acest capitol vă învață cum să creați un Excel VBA Userform. Formularul de utilizator pe care îl vom crea arată după cum urmează:

Excel VBA Userform

Adăugați comenzile

Pentru a adăuga comenzile la Userform, executați pașii următori.

1. Deschideți Editorul Visual Basic. Dacă Project Explorer nu este vizibil, faceți clic pe Vizualizare, Project Explorer.

2. Faceți clic pe Inserare, Formă utilizator. Dacă Toolbox-ul nu apare automat, faceți clic pe View (Vizualizare), Toolbox (Instrumente). Ecranul dvs. trebuie să fie configurat ca mai jos.

Setarea ecranului utilizatorului în Excel VBA

3. Adăugați comenzile listate în tabelul de mai jos. Odată terminată, rezultatul ar trebui să fie în concordanță cu imaginea formularului de utilizator afișat mai devreme. De exemplu, creați un control al casetei de text făcând clic pe TextBox din caseta de instrumente. Apoi, puteți glisa o casetă de text pe Userform. Când ajungeți la cadrul Car, amintiți-vă pentru a desena acest cadru înainte de a plasa cele două butoane de opțiuni în el.

4. Modificați numele și subtitrările comenzilor conform tabelului de mai jos. Numele sunt utilizate în codul Excel VBA. Titlurile sunt cele care apar pe ecran. Este o practică bună schimbarea numelor controalelor. Acest lucru va face codul mai ușor de citit. Pentru a modifica numele și subtitrarea comenzilor, faceți clic pe Vizualizare, fereastra de proprietăți și faceți clic pe fiecare control.

Control Nume Legendă
userform DinnerPlannerUserForm Planificatorul de mese
Casetă de text NameTextBox
Casetă de text PhoneTextBox
Listă cutie CityListBox
Cutia combo DinnerComboBox
Caseta de bifat DateCheckBox1 13 iunie
Caseta de bifat DateCheckBox2 20 iunie
Caseta de bifat DateCheckBox3 27 iunie
Cadru CarFrame Mașină
Buton opțiune CarOptionButton1 da
Buton opțiune CarOptionButton2 Nu
Casetă de text MoneyTextBox
Butonul de rotire MoneySpinButton
Butonul de comanda butonul OK O.K
Butonul de comanda ClearButton clar
Butonul de comanda CancelButton Anulare
7 Etichete Nu este nevoie să se schimbe Nume :, Număr de telefon :, etc.

Notă: o casetă combo este o listă derulantă de unde un utilizator poate selecta un element sau poate completa propria sa alegere. Numai unul dintre butoanele opționale poate fi selectat.

Afișați formatul de utilizator

Pentru a afișa Userform, plasați un buton de comandă pe foaia de lucru și adăugați următoarea linie de cod:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Acum vom crea Sub UserForm_Initialize. Când utilizați metoda de afișare pentru formularul de utilizator, această secțiune va fi executată automat.

1. Deschideți Editorul Visual Basic.

2. În Project Explorer, faceți clic dreapta pe DinnerPlannerUserForm și faceți clic pe View Code (Vizualizare cod).

3. Selectați Format utilizator din lista verticală stânga. Selectați Inițializare din lista derulantă din dreapta.

4. Adăugați următoarele linii de cod:

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

Explicație: căsuțele de text sunt golite, căsuțele de listă și casetele combo sunt umplute, casetele de selectare nu sunt bifate etc.

Alocați macrocomenzile

Am creat acum prima parte a Userform. Deși arată deja bine, nimic nu se va întâmpla încă atunci când faceți clic pe butoanele de comandă de pe Userform.

1. Deschideți Editorul Visual Basic.

2. În Project Explorer, faceți dublu clic pe DinnerPlannerUserForm.

3. Faceți dublu clic pe butonul "Spinare bani".

4. Adăugați următoarea linie de cod:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Explicație: această linie de cod actualizează caseta de text atunci când utilizați butonul de rotire.

5. Faceți dublu clic pe butonul OK.

6. Adăugați următoarele linii de cod:

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

Explicație: mai întâi, activăm Sheet1. Apoi, vom determina emptyRow. Variabila emptyRow este primul rând gol și crește de fiecare dată când este adăugată o înregistrare. În cele din urmă, transferăm informațiile din Formularul de utilizator în coloanele specifice ale câmpului emptyRow.

7. Faceți dublu clic pe butonul Ștergere.

8. Adăugați următoarea linie de cod:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Explicație: această linie de cod solicită Sub UserForm_Initialize când faceți clic pe butonul Ștergere.

9. Faceți dublu clic pe butonul Anulare.

10. Adăugați următoarea linie de cod:

Private Sub CancelButton_Click()

Unload Me

End Sub

Explicație: această linie de cod închide Formatul de utilizator când faceți clic pe butonul Anulare.

Testați Formatul de utilizare

Ieșiți din Editorul Visual Basic, introduceți etichetele de mai jos în rândul 1 și testați Formatul de utilizator.

Rezultat:

Testați Formatul de utilizare

De asemenea, citiți: