Userform vba excel свойства и методы

Обновлено: 07.07.2024

A UserForm object is a window or dialog box that makes up part of an application's user interface.

The UserForms collection is a collection whose elements represent each loaded UserForm in an application. The UserForms collection has a Count property, an Item method, and an Add method. Count specifies the number of elements in the collection; Item (the default member) specifies a specific collection member; and Add places a new UserForm element in the collection.

Syntax

UserForm UserForms [ .Item ] (index)

The placeholder index represents an integer with a range from 0 to UserForms.Count - 1. Item is the default member of the UserForms collection and need not be specified.

Remarks

You can use the UserForms collection to iterate through all loaded user forms in an application. It identifies an intrinsic global variable named UserForms. You can pass UserForms(index) to a function whose argument is specified as a UserForm class.

User forms have properties that determine appearance such as position, size, and color; and aspects of their behavior.

User forms can also respond to events initiated by a user or triggered by the system. For example, you can write code in the Initialize event procedure of the UserForm to initialize module-level variables before the UserForm is displayed.

In addition to properties and events, you can use methods to manipulate user forms by using code. For example, you can use the Move method to change the location and size of a UserForm.

When designing user forms, set the BorderStyle property to define borders, and set the Caption property to put text in the title bar. In code, you can use the Hide and Show methods to make a UserForm invisible or visible at run time.

UserForm is an Object data type. You can declare variables as type UserForm before setting them to an instance of a type of UserForm declared at design time. Similarly, you can pass an argument to a procedure as type UserForm. You can create multiple instances of user forms in code by using the New keyword in Dim, Set, and Static statements.

You can access the collection of controls on a UserForm by using the Controls collection. For example, to hide all the controls on a UserForm, use code similar to the following.

See also

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

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

Когда вы разрабатываете форму:

Каждое окно формы имеет свои кнопки Развернуть, Свернуть и Закрыть.

Вы можете просмотреть сетку форм и определить размер сетки на вкладке Общие параметры диалоговое окно.

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

Сочетания клавиш

Используйте эти сочетания ключей в окне UserForm. Чтобы отменить выбор всех элементов управления, щелкните форму. Чтобы выбрать элементы управления в контейнере, сначала вывести контейнер, а затем использовать CTRL+CLICK+DRAG вокруг нужных элементов управления.

Сочетание клавиш To
SHIFT+CTRL +ALPHA Выберите свойство в списке Свойства окна Свойства.
ALPHA Ввести значение в окне Свойства для выбранного свойства.
F7 Откройте окно Code для выбранного объекта.
DEL или DELETE Удалить выбранные элементы управления без их размещения в буфере обмена.
CTRL+Z Отменить удаление элементов управления.
TAB Выполнить переход вперед по элементам управления в последовательности табуляции.
SHIFT+TAB Выполнить переход назад по элементам управления в последовательности табуляции.
CTRL+CLICK Добавить или удалить элемент управления из выборки.
CLICK+DRAG Выбрать несколько элементов управления.
SHIFT+CLICK Выбрать несколько элементов управления.
CTRL+CLICK+DRAG Добавить или удалить элементы управления из текущей выборки.
F6 Открыть окно Свойства (только во время разработки).
SHIFT+F10 Просмотреть контекстное меню.
CTRL+J Вынести на передний план (влияет на перекрывающиеся элементы управления только во время разработки).
CTRL+K Перенести на задний план (влияет на перекрывающиеся элементы управления только во время разработки).

См. также

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

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

Довольно часто при создании макросов может понадобиться придать им некой “динамичности”. Как и рядовые приложения, редактор VBA предоставляет объект UserForm, который отвечает за создание формы.

userform vba - класс для работы с формой

По своей природе, объект vba UserForm представляет из себя пустое диалоговое окно, на поверхность которого можно добавить различные элементы управления (кнопки, списки и так далее). В отличии от тех объектов, с которыми мы работали в сценариях сервера Windows Script Host, объекты VBA помимо свойств и методом, обладают еще и событиями, кроме этого, объекты класса UserForm vba содержат в себе модуль класса, который может хранить собственные методы и свойства, или код для обработки событий.

Что бы добавить новую форму к vba проекту, воспользуйтесь меню Insert , пункт UserForm . Обратите внимание: в окне Проектов есть папка Forms, в которой хранятся все формы, добавленные в проект, имя для формы назначается автоматически, например, UserForm1, UserForm2,…,UserFormN. Если вы случайно закроете окно формы, то его можно вновь запустить, выбрав нужную форму в окне Проектов. Можете также прочитать предыдущую стать "Знакомство с редактором VBA"

Некоторые свойства класса UserForm vba языка

Name – данное свойство содержит имя формы, или, точнее сказать, имя объекта. Нужно понимать, что данное значение доступно только в теле программы и никак не влияет на конечный результат.

BackColor – содержит цвет фона.

BorderColor – цвет рамки

BorderStyle – стиль рамки, принимает только два возможных значения.

Caption – свойство определяет заголовок формы, фактически, это то т же заголовок окна программы. По умолчанию, данное свойство содержит то же значение, что и свойство Name.

Enabled – принимает логическое True или False, и определяет, доступна ли форма. Если значение свойства ровно False, то ни один из элементов управления не доступен.

ShowModal – как и предыдущее свойство, ShowModal может принимать логические значения. True – по умолчанию, “модальный” режим, пока не будет закрыта текущая форма, другая форма или возврат в документ будут недоступны.

Font – определяет шрифт.

ForeColor – определяет цвет переднего плана формы, например, цвет текста.

Некоторые методы класса UserForm vba языка

Hide – данный метод убирает из видимости форму, делая ее скрытой. Все ее параметры и элементы управления остаются неизменными.

Repaint – позволяет перерисовать отображаемую форму.

Show – метод противоположен методу Hide, он делает форму видимой, если она еще не загружена в память, то происходит ее загрузка.

И так, что бы не томить душу, давайте создадим простую форму, назовем ее “Первая программа” (свойство Caption), у меня имя формы UserForm1. Хорошо, теперь нам нужно написать макрос, при запуске которого будет выводиться форма. Для этого добавляем в проект новый модуль и в окне кода пишем следующее:

Тут Module1 – имя процедуры, оно совпадает с именем модуля, оно хранится в свойстве Name. Sub … End Sub – это блок процедуры. UserForm1.Show – тут мы вызываем метод Show объекта UserForm1 для отображения формы, помните, UserForm1 – имя моей формы, его тоже можно изменить.

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

Некоторые события класса UserForm vba языка

Редактор кода для userform vba и модуля

Activate – событие возникает каждый раз, когда окно формы становится активным.

Click – происходит клик мышью по поверхности, не занятой элементами управления.

DblClick – аналог предыдущему событию, только тут происходит двойной клик по форме.

Deactivate – событие возникает каждый раз, как окно формы переходит в неактивное состояние.

Initialize – возникает как только происходит загрузка формы в память с помощью метода Show или оператора Load.

Resize – происходит изменение размеров формы

Terminate – событие происходит каждый раз, как только форма выгружается из памяти.

Помним, что для вызова метода или события, сперва идет имя объекта, а потом, после точки, имя метода или свойства. С событиями все по-другому: нам нужно создать процедуру и присвоить ей имя в стиле “Объект_Событие”, то есть, сначала мы пишем имя объекта (например, UserForm1), потом идет символ подчеркивания и имя события.

Ладно, откройте редактор формы и дважды щелкнете по полю формы, вас сразу перенаправит в редактор кода, где содержатся следующие строки:

Видим, что данная процедура рассчитана для события Click, давайте в ней пропишем:

Обратите внимание, что у вас в проекте есть форма и два редактора кода, один содержит строки:

Это фактически и есть наш макрос, он отображается в окне проекта. Что бы получить доступ к редактору кода для самой формы, выберите в редакторе vba, в окне Проекта нужную форму и нажмите на крайнюю левую кнопку вверху (View Code), или просто выберите аналогичный пункт в меню View. Также, обратите внимание, что теперь вы можете выбрать нужное событие в окне кода для данной формы, список находится вверху справа.

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

Спасибо за внимание. Автор блога Владимир Баталий

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

Создание пользовательской формы

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

  • Нажмите вкладку РАЗРАБОТЧИК на ленте.
  • Нажмите Visual Basic. Откроется окно Visual Basic для книги.
  • Нажмите Вставить,
  • Выберите UserForm из выпадающего списка.

Создание пользовательской формы

Пользовательская форма появляется в правой части окна.

Появляется пользовательская форма

Понимание пользовательской формы

Вы находитесь в режиме дизайна сейчас. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в панели инструментов. Свойства UserForm находятся в окне свойств. UserForm1 (подпись UserForm) указывается в разделе «Формы» в проводнике проектов.

Понимание UserForm

Отчет о проекте

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

Элементы управления в панели инструментов

Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена ​​информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.

Элементы управления формой

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

Элементы управления ActiveX

Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.

  • Указатель
  • этикетка
  • Текстовое окно
  • Поле со списком
  • ListBox
  • CheckBox
  • OptionButton
  • Рамка
  • Кнопка-переключатель
  • CommandButton
  • TabStrip
  • MultiPage
  • Полоса прокрутки
  • в полях ввода
  • Образ

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

этикетка

Вы можете использовать ярлыки для идентификации, отображая описательный текст, такой как заголовки, подписи и / или краткие инструкции.

этикетка

Текстовое окно

Вы можете использовать TextBox в виде прямоугольника для ввода, просмотра или редактирования текста. Вы также можете использовать TextBox в качестве статического текстового поля, которое представляет информацию только для чтения.

Текстовое окно

Список

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

  • Вставьте ListBox в пользовательскую форму.
  • Нажмите на список.
  • Введите ProjectCodes для Name в окне свойств ListBox.

Вы можете выбрать один из этих типов списков в окне свойств.

ListBox

  • Щелкните правой кнопкой мыши на пользовательской форме.
  • Выберите View Code из выпадающего списка. Откроется окно кода UserForm.
  • Нажмите Инициализировать в правом верхнем углу окна кода.
  • Введите следующее в Private Sub UserForm_Initialize ().

инициализировать

  • Перейдите на вкладку «Выполнить» на ленте.
  • Выберите Run Sub / UserForm из выпадающего списка.

Выберите Run

Далее вы можете написать код для действий по выбору элемента в списке. В противном случае вы можете просто отобразить выбранный текст, как в случае заполнения кода проекта в отчете.

Поле со списком

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

Читайте также: