Как вывести userform на лист

VBA Excel. Программное создание формы

Программное создание пользовательской формы из кода VBA Excel. Добавление на форму кнопки и события Click в модуль созданной формы. Удаление формы.

Программная работа с формой

Создание

Пользовательская форма программно (динамически) может быть создана только как элемент коллекции VBComponents проекта VBA:

Число (3) означает, что создается форма, если заменить его на (1), будет создан стандартный модуль.

Значения свойствам формы myForm, как элемента коллекции VBComponents, присваиваются следующим образом:

Присвоенные значения параметров динамической формы, как элемента коллекции VBComponents, сохраняются при закрытии формы.

Для элемента коллекции UserForms присвоение значений свойств будет выглядеть следующим образом:

Присвоенные значения параметров динамической формы, как элемента коллекции UserForms, не сохраняются при закрытии формы.

Я не рекомендую работать из кода VBA Excel с программно созданной формой, как элементом коллекции UserForms, кроме случая, когда необходимо отобразить динамическую форму на экране. В других случаях можно получить непредсказуемые результаты, например, могут не работать программно созданные кнопки, а также они будут исчезать при закрытии формы.

Отображение

Здесь возникает проблема: у динамической формы, созданной как элемент коллекции VBComponents, нет метода, который позволил бы ее отобразить на экране.

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

Источник

Объект UserForm

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

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

Синтаксис

UserForm UserForms [ . Item ](index)

Примечания

Коллекцию 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, используйте код, аналогичный следующему.

См. также

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

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

Источник

Как вывести userform на лист

Width

frmForm1.Caption = «������»

������� 5.2. �������� ������� ����

Initialize

Activate

Deactivate

Click

Private Sub UserForm_Activate()

frmForm1.Caption = «������ �� ����� ��������� � �������»

End Sub

Private Sub UserForm_Click()

frmForm1.Width = frmForm1.Width / 2

frmForm1.Height = frmForm1.Height / 2

frmForm1.Caption = «������ ��� ��� ���!»

End Sub

������� 5.3. �������� ������ ����

Unload

Private Sub UserForm_Initialize()

Load frmForm2

frmForm2.Show

End Sub

Private Sub UserForm_Click()

frmForm2.Hide

End Sub

Private Sub UserForm_Click()

frmForm2.Show

End Sub

�������� ����������� ��������� �� ����� ����������� � ������� ������ ������������, ������� ��������� �� ����� �������� ��� Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист������ ��������� (���. 5.2).

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

frmMyForm

lblInfo

txtInput

cmdExit

chkSound

optLevel

lsbTypes

fraChoices

vcbSpeed

picChema

BackColor

Caption

Enabled

ForeColor

Picture

PicturePosition

Visible

Enabled

ForeColor

MaxLength

PasswordChar

txtResult.Text=» «

������� 5.8. �������� �������

Caption

ForeColor

Picture

PicturePosition

������� 5.9. �������� ������

ListIndex

Private Sub UserForm_Initialize()

List1.AddItem «����»

List1.AddItem «����»

List1.AddItem «�����»

List1.AddItem «������»

List1.AddItem «�������»

End Sub

Private Sub List1_DblClick()

List2.AddItem List1.Text

List1.RemoveItem

List1.ListIndex

End Sub

Private Sub List2_dblClick()

List1.AddItem List2.Text

List2.RemoveItem

List2.ListIndex

Источник

Макросы Excel — пользовательские формы

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

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

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

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

Разверните окно UserForm.xlsx — UserForm1.

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

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

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

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

Excel предоставляет два типа элементов управления — элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.

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

Элементы управления формой — это оригинальные элементы управления Excel, которые совместимы с более ранними версиями Excel, начиная с Excel версии 5.0. Элементы управления формой также предназначены для использования на листах макроса XLM.

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

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

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

У вас есть следующие элементы управления ActiveX в UserForm ToolBox —

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

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

этикетка

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

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

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

Список

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

Есть три типа списков —

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

Список выбора множественного выбора — Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.

Поле со списком расширенного выбора — Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.

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

Список выбора множественного выбора — Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.

Поле со списком расширенного выбора — Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

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

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

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

Источник

VBA Excel. Первая форма (для начинающих)

Пример создания пользовательской формы в редакторе VBA Excel для начинающих программировать с нуля. Добавление на форму текстового поля и кнопки.

Начинаем программировать с нуля
Часть 4. Первая форма
[Часть 1] [Часть 2] [Часть 3] [Часть 4]

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

Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».

В открывшемся окне редактора VBA выберите вкладку «Insert» главного меню и нажмите кнопку «UserForm». То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

На экране редактора VBA появится новая пользовательская форма с именем «UserForm1»:

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

Добавление элементов управления

Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

При наведении курсора на элементы управления появляются подсказки.

Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.

Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.

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

Как вывести userform на лист. Смотреть фото Как вывести userform на лист. Смотреть картинку Как вывести userform на лист. Картинка про Как вывести userform на лист. Фото Как вывести userform на лист

Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».

Отображение формы на экране

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

Для запуска пользовательской формы с рабочего листа Excel, можно использовать кнопки, описанные в этой статье. Например, чтобы отобразить форму с помощью «кнопки – элемента ActiveX», используйте в модуле рабочего листа следующий код:

Источник

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

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