Пользовательская форма Excel VBA с несколькими страницами - простые макросы Excel

Содержание

Ниже мы рассмотрим программу в Excel VBA, которая создает пользовательскую форму, содержащую несколько страниц. Эта пользовательская форма также содержит изображения.

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

Чтобы создать эту пользовательскую форму, выполните следующие шаги.

1. Откройте редактор Visual Basic. Если обозреватель проекта не отображается, щелкните «Просмотр», «Обозреватель проекта».

2. Щелкните Вставить, Пользовательская форма. Если панель инструментов не появляется автоматически, щелкните «Просмотр», «Панель инструментов». Ваш экран должен быть настроен, как показано ниже.

3. Добавьте многостраничный элемент управления, метки, текстовые поля (первое вверху, второе под первым), рамку, кнопки выбора (первая слева, вторая справа), окно списка, элемент управления изображением и командную кнопку. После этого результат должен соответствовать пустой версии пользовательской формы, показанной ранее. Например, создайте многостраничный элемент управления, щелкнув Многостраничный на панели инструментов. Затем вы можете перетащить многостраничный элемент управления в пользовательскую форму. Когда вы дойдете до рамки «Пол», не забудьте сначала нарисовать эту рамку, прежде чем помещать в нее две кнопки выбора.

4. Вы можете изменить имена и заголовки элементов управления. Имена используются в коде Excel VBA. Подписи - это те, которые появляются на вашем экране. Рекомендуется изменять имена элементов управления, но в этом нет необходимости, потому что в этом примере у нас есть только несколько элементов управления. Чтобы изменить заголовок пользовательской формы, многостраничных вкладок, меток, рамки, переключателей и командных кнопок, щелкните «Вид», «Окно свойств» и щелкните каждый элемент управления.

5. Чтобы отобразить пользовательскую форму, поместите кнопку на листе и добавьте следующую строку кода:

Частная подпрограмма CommandButton1_Click ()
UserForm1.Show
Конец подписки

Теперь мы собираемся создать Sub UserForm_Initialize. Когда вы используете метод Show для пользовательской формы, эта подпрограмма будет выполнена автоматически.

6. Откройте редактор Visual Basic.

7. В проводнике проекта щелкните правой кнопкой мыши UserForm1 и выберите команду Просмотреть код.

8. Выберите Userform в левом раскрывающемся списке. В правом раскрывающемся списке выберите «Инициализировать».

9. Добавьте следующие строки кода:

Частная подписка UserForm_Initialize ()
С ListBox1
.AddItem "Горы"
.AddItem "Закат"
.AddItem "Пляж"
.AddItem "Зима"
Конец с
Конец подписки

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

Мы создали первую часть пользовательской формы. Хотя это уже выглядит аккуратно, пока мы ничего не произойдет, когда мы выберем элемент из списка или когда мы нажмем кнопку ОК.

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

11. В проводнике проекта дважды щелкните UserForm1.

12. Дважды щелкните список.

13. Добавьте следующие строки кода:

Private Sub ListBox1_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")
Конец, если
Конец подписки

Объяснение: эти строки кода загружают изображение в зависимости от выбранного элемента в списке.

14. Дважды щелкните кнопку ОК.

15. Добавьте следующие строки кода:

Частная подпрограмма CommandButton1_Click ()
Dim emptyRow As Long
'Сделать Sheet1 активным
Sheet1.Activate
'Определить emptyRow
emptyRow = WorksheetFunction.CountA (Диапазон ("A: A")) + 1
'Информация о передаче
Ячейки (emptyRow, 1) .Value = TextBox1.Value
Ячейки (emptyRow, 2) .Value = TextBox2.Value
Если OptionButton1.Value = True, то
Ячейки (emptyRow, 3) .Value = "Мужской"
Еще
Ячейки (emptyRow, 3) .Value = "Женский"
Конец, если
Ячейки (emptyRow, 4) .Value = ListBox1.Value
'Закрыть пользовательскую форму
Разгрузить меня
Конец подписки

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

16. Выйдите из редактора Visual Basic, введите указанные ниже метки в строку 1 и протестируйте пользовательскую форму.

Результат:

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

wave wave wave wave wave