Как в vba excel сделать userform для заполнения списка
Перейти к содержимому

Как в vba excel сделать userform для заполнения списка

VBA-Урок 12.1. Пользовательские формы (UserForm)

Чтобы добавить UserForm, нужно сделать то же самое, когда мы добавляем новый модуль:

После этого появится форма (UserForm) и панель инструментов (Toolbox):

Если вы не видите окно Свойства ( Properties ), убедитесь, что оно отображено и тогда начните с изменения названия Формы (так, чтобы вы ее легко могли найти позже):

Вид ( UserForm ) имеет свои собственные события, подобно тому, как имеет рабочая книга или лист. Чтобы добавить событие, дважды щелкните по Форме ( UserForm).

Теперь давайте создадим два события, чтобы посмотреть как это работает. Первое событие будет определять начальный размер Формы , и второе — увеличивать ее размеры на 50 пикселей, когда пользователь щелкает.

Событие UserForm_Initialize будет срабатывать когда Форма запускается:

Для упрощения кода, мы можем использовать Me вместо названия формы (так как этот код есть в Форме , с которой мы работаем):

Второе событие будет возникать когда пользователь будут кликать по Форме:

Запуск формы (UserForm)

Чтобы запустить Форму в процедуре, используйте Show:

Объект UserForm

Объект UserForm — это окно или диалоговое окно, которое является частью пользовательского интерфейса приложения.

Коллекция UserForms — это коллекция, элементы которой представляют каждый загруженный UserForm в приложении. Коллекция UserForms имеет свойство Count, метод Item и метод Add. Свойство Count определяет число элементов в коллекции; свойство Item (элемент по умолчанию) — конкретный элемент коллекции; а метод Add позволяет добавить элемент UserForm в коллекцию.

Синтаксис

UserForm UserForms [ . Item ](index)

Индекс задатки представляет собой целый ряд с диапазоном от 0 до UserForms.Count — 1. Item — это элемент коллекции UserForms по умолчанию, который не требуется задавать.

Примечания

Коллекцию UserForms можно использовать для перебора всех загруженных в приложение форм. В ней определяется внутренняя глобальная переменнаяUserForms. Вы можете передать UserForms(index) функции, аргумент которой указан как класс UserForm.

Свойства пользовательских форм определяют их внешний вид, в том числе позицию, размер и цвет, а также некоторые аспекты их поведения.

Пользовательские формы также отвечают на события, запускаемые пользователем или системой. Например, вы можете добавить в процедуру события Initialize для элемента UserForm код, позволяющий инициализировать переменные уровня модуля до отображения элемента UserForm.

В дополнение к свойствам и событиям можно использовать методы для управления формами пользователей с помощью кода. Например, с помощью метода Move можно изменить расположение и размер userForm.

При разработке форм пользователя установите свойство BorderStyle для определения границ и установите свойство Caption для того, чтобы поместить текст в заголовок. В коде можно использовать методы Hide и Show, чтобы сделать UserForm невидимым или видимым во время запуска.

Элемент UserForm имеет тип данных Object. Вы можете объявить переменные с типом UserForm, прежде чем присвоить их экземпляру типа UserForm, объявленному во время разработки. Аналогичным образом, можно передать аргумент в процедуру как значение типа UserForm. Вы можете создавать в коде несколько экземпляров пользовательских форм с помощью ключевого слова New в операторах Dim, Set и Static.

Вы можете получить доступ к коллекции элементов управления в UserForm с помощью коллекции элементов управления. Например, чтобы скрыть все элементы управления в UserForm, используйте код, аналогичный следующему.

См. также

  • Панель инструментов "Пользовательская форма"
  • Окно "Пользовательская форма"
  • Объекты (Visual Basic для приложений)
  • Справочник по библиотеке объектов для Office (элементы, свойства, методы)

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *