Користувацька форма Excel VBA з кількома сторінками - прості макроси Excel

Зміст

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

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

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

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

2. Натисніть Вставити, форма користувача. Якщо панель інструментів не з'являється автоматично, натисніть Перегляд, Панель інструментів. Ваш екран слід налаштувати, як показано нижче.

3. Додайте багатосторінковий елемент керування, підписи, текстові поля (спочатку зверху, другий під першим), рамку, кнопки опцій (спочатку ліворуч, другий праворуч), поле зі списком, керування зображенням та кнопку команди. Як тільки це буде завершено, результат повинен відповідати порожній версії Userform, показаній раніше. Наприклад, створіть багатосторінковий елемент керування, натиснувши на багатосторінковій панелі інструментів. Далі можна перетягнути багатосторінковий елемент керування на Userform. Коли ви підходите до рамки «Стать», не забудьте спершу намалювати цю рамку, перш ніж розмістити в ній дві кнопки опцій.

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

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

Приватна підкомандаButton1_Click ()
UserForm1.Show
End Sub

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

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

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

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

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

Приватний підкористувач UserForm_Initialize ()
З ListBox1
.AddItem "Гори"
.AddItem "Захід сонця"
.Додаток "Пляж"
.Додаток "Зима"
Закінчити з
End Sub

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

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

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

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

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

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

Приватний список SubboxBox1_Click ()
Якщо ListBox1.ListIndex = 0 Тоді
Image1.Picture = LoadPicture ("C: \ test \ Mountains.jpg")
Закінчити Якщо
Якщо ListBox1.ListIndex = 1 Тоді
Image1.Picture = LoadPicture ("C: \ test \ Sunset.jpg")
Закінчити Якщо
Якщо ListBox1.ListIndex = 2 Тоді
Image1.Picture = LoadPicture ("C: \ test \ Beach.jpg")
Закінчити Якщо
Якщо ListBox1.ListIndex = 3 Тоді
Image1.Picture = LoadPicture ("C: \ test \ Winter.jpg")
Закінчити Якщо
End Sub

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

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

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

Приватна підкомандаButton1_Click ()
Dim emptyRow As Long
'Зробіть активним Sheet1
Аркуш 1. Активуйте
'Визначте emptyRow
emptyRow = WorksheetFunction.CountA (Діапазон ("A: A")) + 1
'Передайте інформацію
Клітинки (пустий рядок, 1). Значення = TextBox1. Значення
Клітинки (пустий рядок, 2). Значення = TextBox2.Value
Якщо OptionButton1.Value = True Тоді
Клітинки (emptyRow, 3) .Value = "Чоловічий"
Інакше
Клітинки (emptyRow, 3) .Value = "Жіночий"
Закінчити Якщо
Клітинки (порожнє рядок, 4). Значення = ListBox1.Value
'Закрити Userform
Розвантажте мене
End Sub

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

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

Результат:

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave