/ / Excel VBA Userform з кількома сторінками

Excel VBA Userform з кількома сторінками

Нижче ми розглянемо програму в Excel VBA, яка створює Userform, що містить кілька сторінок. Ця форма містить також зображення.

Контроль багатосторінкових містить дві сторінки. На сторінці 1 користувач може заповнити свою особисту інформацію. На сторінці 2 користувач може вказати, яка картина йому найбільше подобається.

Userform Сторінка 1
Userform Page 2

Щоб створити цю Userform, виконайте наступні кроки.

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

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

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

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

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

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

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

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

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

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

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

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Mountains"
    .AddItem "Sunset"
    .AddItem "Beach"
    .AddItem "Winter"
End With

End Sub

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

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

10. Завантажте зображення (праворуч на цю сторінку) та додайте їх до "C: test"

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

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

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

Private Sub ListBox1_Click()

If ListBox1.ListIndex = 0 Then
    Image1.Picture = LoadPicture("C:testMountains.jpg")
End If

If ListBox1.ListIndex = 1 Then
    Image1.Picture = LoadPicture("C:testSunset.jpg")
End If

If ListBox1.ListIndex = 2 Then
    Image1.Picture = LoadPicture("C:testBeach.jpg")
End If

If ListBox1.ListIndex = 3 Then
    Image1.Picture = LoadPicture("C:testWinter.jpg")
End If

End Sub

Пояснення: ці кодові рядки завантажують зображення залежно від вибраного елемента у списку.

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

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

Private Sub CommandButton1_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 = TextBox1.Value
Cells(emptyRow, 2).Value = TextBox2.Value

If OptionButton1.Value = True Then
    Cells(emptyRow, 3).Value = "Male"
Else
    Cells(emptyRow, 3).Value = "Female"
End If

Cells(emptyRow, 4).Value = ListBox1.Value

"Close Userform
Unload Me

End Sub

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

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

Результат:

Перевірте Userform

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