/ / Excel VBA Userform

Excel VBA Userform

Додайте елементи керування | Показати Userform | Призначити макроси | Перевірте Userform

У цьому розділі вчить вас, як створити Excel VBA Userform. Формат Userform, який ми збираємося створити, виглядає наступним чином:

Excel VBA Userform

Додайте елементи керування

Щоб додати елементи керування до Userform, виконайте наступні дії.

1. Відкрийте редактор Visual Basic. Якщо Провідник проекту не відображається, натисніть Переглянути, Провідник проекту.

2. Клацніть Insert, Userform. Якщо панель інструментів не відображається автоматично, натисніть Переглянути, Панель інструментів. Ваш екран повинен бути налаштований як показано нижче.

Налаштування екрана Userform у програмі Excel VBA

3. Додайте елементи керування, наведені в таблиці нижче. Після того, як це буде завершено, результат має відповідати картині формату Userform, показаному раніше. Наприклад, створіть елемент керування текстом, натиснувши TextBox на панелі інструментів. Далі можна перетягнути текстове поле на Userform. Коли ви приїдете в рамку автомобіля, пам'ятайте, перше, перше, перше, перш ніж помістити в неї дві кнопки вибору.

4 Змінити імена та підписи елементів керування відповідно до таблиці нижче. Імена використовуються в коді Excel VBA. Підписи - це ті, які з'являються на вашому екрані. Рекомендовано змінити назви елементів керування. Це полегшить читання вашого коду. Щоб змінити назви та підписи елементів керування, клацніть «Перегляд», «Властивості» та клацніть по кожному елементу керування.

Контроль Ім'я Підпис
Userform DinnerPlannerUserForm Плановик вечері
Текстове вікно NameTextBox
Текстове вікно PhoneTextBox
Список коробки CityListBox
Combo Box DinnerComboBox
Перевірте поле DateCheckBox1 13 червня
Перевірте поле DateCheckBox2 20 червня
Перевірте поле DateCheckBox3 27 червня
Рама CarFrame Автомобіль
Кнопка вибору CarOptionButton1 Так
Кнопка вибору CarOptionButton2 Ні
Текстове вікно MoneyTextBox
Спина кнопка MoneySpinButton
Кнопка команди OKButton в порядку
Кнопка команди ClearButton Ясно
Кнопка команди CancelButton Скасувати
7 ярликів Немає необхідності змінюватися Ім'я :, номер телефону :, і т. Д.

Примітка: комбіноване поле - це розкривний список, з якого користувач може вибрати товар або заповнити його власним вибором. Можна вибрати лише одну з кнопок вибору.

Показати Userform

Щоб показати Userform, помістіть на вашій робочій клавіші команду та додайте наступну кодову рядок:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Ми збираємось створити Sub UserForm_Initialize. Якщо ви використовуєте метод Show для форми Userform, цей підрозділ буде автоматично виконано.

1. Відкрийте редактор Visual Basic.

2. У Провіднику проекту клацніть правою кнопкою миші на DinnerPlannerUserForm, а потім натисніть кнопку Перегляд коду.

3. Оберіть Userform у спадному списку ліворуч. У спадному списку праворуч виберіть «Ініціалізувати».

4. Додайте наступні кодові рядки:

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

Пояснення: текстові поля вичерпуються, заповнюються списки та комбінації, прапорці не позначені і т. Д.

Призначити макроси

Тепер ми створили першу частину Userform. Хоча це виглядає вже акуратно, ще нічого не станеться, коли ми натискаємо кнопки команд у Userform.

1. Відкрийте редактор Visual Basic.

2. У Провіднику проекту двічі клацніть на DinnerPlannerUserForm.

3. Двічі клацніть кнопку "Гроші".

4. Додайте наступну кодову лінію:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Пояснення: ця кодова лінія оновлює текстове поле, коли ви використовуєте кнопку обертання.

5. Двічі клацніть на кнопці OK.

6. Додайте наступні кодові рядки:

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

Пояснення: по-перше, ми активуємо Sheet1. Далі ми визначаємо emptyRow. Змінна emptyRow - це перший порожній рядок і збільшується щоразу, коли додається запис. Нарешті, ми передаємо інформацію з форми Userform у конкретні стовпці emptyRow.

7. Двічі клацніть на кнопці Очистити.

8. Додайте наступну кодову лінію:

Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Пояснення: ця кодова лінія викликає Sub UserForm_Initialize, коли ви натискаєте кнопку Clear.

9. Двічі натисніть кнопку "Скасувати".

10. Додайте наступну кодову лінію:

Private Sub CancelButton_Click()

Unload Me

End Sub

Пояснення: ця кодова лінія закриває Userform, коли ви натискаєте кнопку "Скасувати".

Перевірте Userform

Вийдіть з редактора Visual Basic, введіть мітки, показані нижче, у рядку 1 та перевірте Userform.

Результат:

Перевірте Userform

Також читайте: