Объект UserForm | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
ОбъектUserForm — это окно или диалоговое окно, составляющие часть пользовательского интерфейса приложения.
КоллекцияUserForms — это коллекция, элементы которой представляют каждую загруженную пользовательную форму в приложении. Коллекция UserForms имеет свойство Count , метод Item и Метод Add . Count указывает количество элементов в коллекции; Элемент (элемент по умолчанию) указывает определенный член коллекции; Добавление помещает новый элемент UserForm в коллекцию.
Синтаксис
UserFormsUserForms [ . Item ] (index)
Индекс заполнителя представляет целое число с диапазоном от 0 до UserForms.Count — 1. Item — это элемент коллекции UserForms по умолчанию, который не требуется задавать.
Используйте коллекцию UserForms для итерации всех загруженных пользовательских форм в приложении. В ней определяется внутренняя глобальная переменнаяUserForms. Вы можете передать UserForms(index) в функцию, аргумент которой указан как класс UserForm .
Свойства пользовательских форм определяют их внешний вид, в том числе позицию, размер и цвет, а также некоторые аспекты их поведения.
Пользовательские формы также отвечают на события, запускаемые пользователем или системой. Например, вы можете добавить в процедуру события Initialize для элемента UserForm код, позволяющий инициализировать переменные уровня модуля до отображения элемента
Помимо свойств и событий, можно использовать методы для управления пользовательскими формами с помощью кода. Например, можно использовать метод Move для изменения расположения и размера UserForm.
При разработке пользовательских форм задайте свойство BorderStyle для определения границ, а свойство Caption — для размещения текста в строке заголовка. В коде можно использовать методы Скрыть и Показать , чтобы сделать UserForm невидимой или видимой во время выполнения.
Элемент UserForm имеет тип данных Object. Вы можете объявить переменные с типом UserForm, прежде чем присвоить их экземпляру типа UserForm, объявленному во время разработки. Аналогичным образом, можно передать аргумент в процедуру как значение типа UserForm. Вы можете создавать в коде несколько экземпляров пользовательских форм с помощью ключевого слова New в операторах Dim, Set и Static.
Доступ к коллекции элементов управленияв UserForm с помощью коллекции Controls . Например, чтобы скрыть все элементы управления в UserForm, используйте код, аналогичный приведенному ниже.
For Each Control in UserForm1.Controls Control. Visible = False Next Control
См. также
- Панель инструментов «Пользовательская форма»
- Окно «Пользовательская форма»
- Объекты (Visual Basic для приложений)
- Справочник по библиотеке объектов для Office (элементы, свойства, методы)
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Пользовательская форма в Excel VBA (простые макросы)
Добавить элементы управления | Показать форму пользователя | Назначение макросов | Проверка пользовательской формы
В этой главе рассказывается, как создать пользовательскую форму Excel VBA . Пользовательская форма, которую мы собираемся создать, выглядит следующим образом:
Добавить элементы управления
Чтобы добавить элементы управления в пользовательскую форму, выполните следующие шаги.
1. Откройте редактор Visual Basic. Если Project Explorer не отображается, щелкните View, Project Explorer.
2. Щелкните Вставить, Пользовательская форма. Если панель инструментов не появляется автоматически, щелкните Вид, Панель инструментов. Ваш экран должен быть настроен, как показано ниже.
3. Добавьте элементы управления, перечисленные в таблице ниже. Как только это будет завершено, результат должен соответствовать изображению пользовательской формы, показанному ранее. Например, создайте элемент управления текстовым полем, щелкнув TextBox на панели инструментов. Затем вы можете перетащить текстовое поле в пользовательскую форму. Когда вы доберетесь до рамки автомобиля, не забудьте сначала нарисовать эту рамку, прежде чем поместить в нее две кнопки выбора.
4. Измените названия и подписи элементов управления в соответствии с таблицей ниже. Имена используются в коде Excel VBA. Подписи — это те, которые появляются на вашем экране. Хорошей практикой является изменение имен элементов управления. Это облегчит чтение вашего кода. Чтобы изменить имена и заголовки элементов управления, щелкните «Вид», «Окно свойств» и щелкните каждый элемент управления.
Управление | Имя | Заголовок |
---|---|---|
Форма пользователя | DinnerPlannerUserForm | Планировщик ужина |
Текстовое поле | Имятекстовое поле | |
Текстовое поле | PhoneTextBox | |
Список | Ситилистбокс | |
Комбинированный ящик | УжинКомбобокс | |
Флажок | Датачекбокс1 | 13 июня |
Флажок | Датачекбокс2 | 20 июня |
Флажок | Датачеккбокс3 | 27 июня |
Рама | Автомобильная рама | Автомобиль |
Кнопка выбора | CarOptionButton1 | Да |
Кнопка выбора | CarOptionButton2 | № |
Текстовое поле | MoneyTextBox | |
Кнопка вращения | MoneySpinButton | |
Кнопка управления | ОККнопка | ОК |
Кнопка управления | ClearButton | Прозрачный |
Кнопка управления | Кнопка отмены | Отменить |
7 этикеток | Нет необходимости менять | Имя:, Номер телефона: и т. д. |
Примечание. Поле со списком представляет собой раскрывающийся список, из которого пользователь может выбрать элемент или ввести свой собственный выбор. Можно выбрать только одну из кнопок выбора.
Показать форму пользователя
Чтобы отобразить форму пользователя, поместите командную кнопку на лист и добавьте следующую строку кода: Sub UserForm_Initialize. Когда вы используете метод Show для пользовательской формы, этот подпрограмма будет выполняться автоматически.
1. Откройте редактор Visual Basic.
2. В Project Explorer щелкните правой кнопкой мыши DinnerPlannerUserForm и выберите «Просмотр кода».
3. Выберите «Пользовательская форма» из левого раскрывающегося списка. Выберите «Инициализировать» в правом раскрывающемся списке.
4. Добавьте следующие строки кода:
Private Sub UserForm_Initialize()
‘Empty NameTextBox
NameTextBox.Value = «»
‘Пустой PhoneTextBox
PhoneTextBox. Value = «»
‘Пустой CityListBox
CityListBox.Clear
‘Заполнить CityListBox
С CityListBox
.AddItem «Сан-Франциско»
.AddItem «Окленд»
.AddItem «Ричмонд»
Конец с
‘Пустой ужинComboBox
DinnerComboBox.Clear
‘Заполнить DinnerComboBox
С ужиномComboBox
.AddItem «Итальянский»
.AddItem «Китайский»
.AddItem «Картошка фри и мясо»
Конец с
‘Снять флажки DataCheckBoxes
DateCheckBox1.Value = Ложь
DateCheckBox2.Value = Ложь
DateCheckBox3.Value = False
‘Не использовать машину по умолчанию
CarOptionButton2.Value = True
‘Пустой MoneyTextBox
MoneyTextBox.Value = «»
‘Установить фокус на NameTextBox
NameTextBox.SetFocus
End Sub
Объяснение: текстовые поля пусты, списки и поля со списком заполнены, флажки сняты и т. д.
Назначение макросов
Итак, мы создали первую часть пользовательской формы. Хотя это уже выглядит аккуратно, пока ничего не произойдет, когда мы нажмем командные кнопки на пользовательской форме.
1. Откройте редактор Visual Basic.
2. В Project Explorer дважды щелкните DinnerPlannerUserForm.
3. Дважды щелкните кнопку вращения денег.
4. Добавьте следующую строку кода:
Private Sub MoneySpinButton_Change()
MoneyTextBox.Text = MoneySpinButton.Value
End Sub
Объяснение: эта строка кода обновляет текстовое поле при использовании кнопки прокрутки.
5. Дважды щелкните кнопку OK.
6. Добавьте следующие строки кода:
Private Sub OKButton_Click()
Dim emptyRow As Long
‘Сделать Sheet1 активным
Sheet1.Activate
‘Определить пустую строку
emptyRow = WorksheetFunction.CountA(Range(«A:A»)) + 1
‘Информация о передаче
Ячейки (пустая строка, 1). Значение = NameTextBox. Значение
Ячейки (пустая строка, 2). Значение = PhoneTextBox. Значение
Ячейки (пустая строка, 3). Значение = CityListBox. Значение
Ячейки (пустая строка, 4). Значение = DinnerComboBox. Значение
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
Если DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & » » & DateCheckBox3.Caption
If CarOptionButton1.Value = True Then
Ячейки (пустая строка, 6). Значение = «Да»
Остальное
Ячейки (пустая строка, 6). Значение = «Нет»
End If
Cells(emptyRow, 7).Value = MoneyTextBox.Value
End Sub
Объяснение: сначала мы активируем Sheet1. Далее мы определяем emptyRow. Переменная emptyRow является первой пустой строкой и увеличивается каждый раз при добавлении записи. Наконец, мы передаем информацию из пользовательской формы в определенные столбцы emptyRow.
7. Дважды щелкните кнопку «Очистить».
8. Добавьте следующую строку кода:
Private Sub ClearButton_Click()
Call UserForm_Initialize
End Sub
Объяснение: эта строка кода вызывает Sub UserForm_Initialize, когда вы нажимаете кнопку «Очистить».
9. Дважды щелкните кнопку «Отмена».
10. Добавьте следующую строку кода:
Private Sub CancelButton_Click()
Unload Me
End Sub
Объяснение: эта строка кода закрывает форму пользователя, когда вы нажимаете кнопку Cancel.
Проверка пользовательской формы
Выйдите из редактора Visual Basic, введите метки, показанные ниже, в строку 1 и проверьте пользовательскую форму.
Результат:
Объект пользовательской формы | Microsoft Узнайте
Редактировать
Твиттер LinkedIn Фейсбук Электронная почта
- Статья
- 2 минуты на чтение
Объект UserForm — это окно или диалоговое окно, которое составляет часть пользовательского интерфейса приложения.
9Коллекция 0005 UserForms — это коллекция, элементы которой представляют каждую загруженную UserForm в приложении. Коллекция UserForms имеет свойство Count , метод Item и метод Add . Count указывает количество элементов в коллекции; Элемент (элемент по умолчанию) указывает конкретный элемент коллекции; Добавить помещает в коллекцию новый элемент UserForm .
Синтаксис
userform Userforms [ .Item ] ( Индекс )
Индекс заполнителей представляет собой интекс с диапазоном от 0 до . по умолчанию является членом коллекции UserForms и не требует указания.
Используйте коллекцию UserForms для перебора всех загруженных пользовательских форм в приложении. Он идентифицирует внутреннюю глобальную переменную с именем 9.0005 Пользовательские формы . Вы можете передать UserForms ( index ) в функцию, аргумент которой указан как класс UserForm .
Пользовательские формы имеют свойства, определяющие внешний вид, такие как положение, размер и цвет; и стороны их поведения.
Пользовательские формы также могут реагировать на события, инициированные пользователем или инициированные системой. Например, вы можете написать код в процедуре обработки события Initialize формы UserForm , чтобы инициализировать переменные уровня модуля перед Отображается пользовательская форма .
В дополнение к свойствам и событиям вы можете использовать методы для управления пользовательскими формами с помощью кода. Например, вы можете использовать метод Move для изменения местоположения и размера пользовательской формы .
При разработке пользовательских форм задайте свойство BorderStyle для определения границ и задайте свойство Caption для размещения текста в строке заголовка. В коде вы можете использовать методы Hide и Show , чтобы сделать Пользовательская форма невидимая или видимая во время выполнения.
UserForm — это объектный тип данных. Вы можете объявить переменные как тип UserForm , прежде чем устанавливать для них экземпляр типа UserForm , объявленный во время разработки. Точно так же вы можете передать аргумент процедуре типа UserForm . Вы можете создать несколько экземпляров пользовательских форм в коде, используя ключевое слово New в Dim , Set и Static 9.