Иногда вам, возможно, придется собирать информацию повторно от других. Excel VBA предоставляет вам простой способ решения этой задачи — UserForm . Как и любая другая форма, которую вы заполняете, UserForm упрощает понимание того, какую информацию следует предоставлять. Пользовательская форма удобна для пользователя, так как предоставляемые элементы управления не требуют пояснений и сопровождаются дополнительными инструкциями, если это необходимо.
Основным преимуществом UserForm является то, что вы можете сэкономить время, которое вы тратите на то, как и как информация должна быть заполнена.
Создание пользовательской формы
Чтобы создать пользовательскую форму, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется окно Visual Basic для книги.
- Нажмите Вставить,
- Выберите UserForm из выпадающего списка.
Пользовательская форма появляется в правой части окна.
Понимание пользовательской формы
Разверните окно UserForm.xlsx — UserForm1.
Вы находитесь в режиме дизайна сейчас. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в панели инструментов. Свойства UserForm находятся в окне свойств. UserForm1 (подпись UserForm) указывается в разделе «Формы» в проводнике проектов.
- Измените заголовок UserForm на Project Report — Daily в окне свойств.
- Измените имя пользовательской формы на ProjectReport.
Изменения отражаются в пользовательской форме, свойствах и проводнике проекта.
Элементы управления в панели инструментов
Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.
Excel предоставляет два типа элементов управления — элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.
Элементы управления формой
Элементы управления формой — это оригинальные элементы управления Excel, которые совместимы с более ранними версиями Excel, начиная с Excel версии 5.0. Элементы управления формой также предназначены для использования на листах макроса XLM.
Вы можете запускать макросы с помощью элементов управления формы. Вы можете назначить существующий макрос элементу управления, или написать или записать новый макрос. При нажатии на элемент управления макрос. Вы уже научились вставлять командную кнопку из элементов управления формы на листе для запуска макроса. Однако эти элементы управления не могут быть добавлены в пользовательскую форму.
Элементы управления ActiveX
Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.
У вас есть следующие элементы управления ActiveX в UserForm ToolBox —
- Указатель
- этикетка
- Текстовое окно
- Поле со списком
- ListBox
- CheckBox
- OptionButton
- Рамка
- Кнопка-переключатель
- CommandButton
- TabStrip
- MultiPage
- Полоса прокрутки
- в полях ввода
- Образ
В дополнение к этим элементам управления Visual Basic предоставляет функцию MsgBox, которую можно использовать для отображения сообщений и / или запроса пользователя о действии.
В следующих нескольких разделах вы поймете эти элементы управления и MsgBox. Затем вы сможете выбрать, какой из этих элементов управления требуется для разработки пользовательской формы.
этикетка
Вы можете использовать ярлыки для идентификации, отображая описательный текст, такой как заголовки, подписи и / или краткие инструкции.
пример
Текстовое окно
Вы можете использовать TextBox в виде прямоугольника для ввода, просмотра или редактирования текста. Вы также можете использовать TextBox в качестве статического текстового поля, которое представляет информацию только для чтения.
пример
Список
Вы можете использовать список для отображения списка одного или нескольких элементов текста, из которых пользователь может выбирать. Используйте список для отображения большого количества вариантов, которые различаются по количеству или содержанию.
- Вставьте ListBox в пользовательскую форму.
- Нажмите на список.
- Введите ProjectCodes для Name в окне свойств ListBox.
Есть три типа списков —
-
Поле со списком с одним выбором — Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
-
Список выбора множественного выбора — Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
-
Поле со списком расширенного выбора — Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Поле со списком с одним выбором — Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
Список выбора множественного выбора — Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
Поле со списком расширенного выбора — Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Вы можете выбрать один из этих типов списков в окне свойств.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка. Откроется окно кода UserForm.
- Нажмите Инициализировать в правом верхнем углу окна кода.
- Введите следующее в Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Далее вы можете написать код для действий по выбору элемента в списке. В противном случае вы можете просто отобразить выбранный текст, как в случае заполнения кода проекта в отчете.
Поле со списком
Вы можете использовать ComboBox, который объединяет текстовое поле со списком для создания выпадающего списка. Поле со списком является более компактным, чем поле со списком, но требует, чтобы пользователь щелкнул стрелку вниз, чтобы отобразить список элементов. Используйте поле со списком, чтобы выбрать только один элемент из списка.
- Вставьте ComboBox в пользовательскую форму.
- Нажмите ComboBox.
- Введите ProjectCodes2 для имени в окне свойств ComboBox.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка.
- Откроется окно кода UserForm.
Введите следующее, как показано ниже.
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите стрелку вниз, чтобы отобразить список элементов.
Нажмите на нужный элемент, скажем, Project2016-5. Выбранная опция будет отображаться в поле со списком.
CheckBox
Вы можете использовать флажки, чтобы выбрать один или несколько параметров, которые отображаются, щелкая в полях. Параметры будут иметь метки, и вы сможете четко визуализировать, какие параметры выбраны.
Флажок может иметь два состояния:
- Выбрано (включено), помечено галочкой в поле
- Очищено (выключено), обозначено прозрачной рамкой
Вы можете использовать флажки для выбора параметров в комбинированном окне, чтобы сэкономить место. В этом случае флажок также может иметь третье состояние —
-
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
-
Установите флажки в пользовательской форме, как показано ниже.
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
Установите флажки в пользовательской форме, как показано ниже.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на поля для выбранных вами вариантов.
OptionButton
Вы можете использовать кнопку выбора, также называемую переключателем, чтобы сделать один выбор в пределах ограниченного набора взаимоисключающих вариантов. Кнопка выбора обычно содержится в групповом поле или рамке.
Кнопка выбора представлена маленьким кружком. Кнопка выбора может иметь одно из следующих двух состояний:
- Выбран (включен), обозначен точкой в круге
- Сброс (выключен), обозначается пробелом
Рамка
Вы можете использовать элемент управления кадром, также называемый групповым блоком, для группировки связанных элементов управления в один визуальный блок. Как правило, кнопки выбора, флажки или тесно связанное содержимое группируются в элементе управления фреймом.
Элемент управления фреймом представлен прямоугольным объектом с необязательной меткой.
-
Вставьте рамку с надписью «Выбор».
-
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
Вставьте рамку с надписью «Выбор».
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на выбранный вами вариант.
Кнопка-переключатель
Вы можете использовать кнопку переключения, чтобы указать состояние, например, Да или Нет, или режим, например, включить или выключить. Кнопка чередуется между включенным и отключенным состоянием при нажатии.
Вставьте кнопку переключения на пользовательскую форму, как показано ниже —
-
Перейдите на вкладку «Выполнить» на ленте.
-
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Перейдите на вкладку «Выполнить» на ленте.
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Нажмите кнопку переключения. Кнопка переключения будет отключена.
Если вы снова нажмете кнопку переключения, она будет включена.
CommandButton
Вы можете использовать командную кнопку для запуска макроса, который выполняет некоторые действия, когда пользователь нажимает на него. Вы уже научились использовать командную кнопку на рабочем листе для запуска макроса.
Командная кнопка также называется кнопкой. Вставьте командную кнопку в пользовательскую форму, как показано ниже —
- Щелкните правой кнопкой мыши на кнопке.
- Введите следующий код в sub Commandbutton1_click ().
ProjectCodes2.DropDown
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите кнопку команды. Откроется выпадающий список со списком, так как это действие, которое вы написали в коде.
TabStrip
Вы можете вставить вкладку, которая напоминает вкладки Excel в пользовательской форме.
Полоса прокрутки
Вы можете использовать полосу прокрутки для прокрутки диапазона значений, щелкая стрелки прокрутки или перетаскивая поле прокрутки.
Вставьте полосу прокрутки в пользовательскую форму, нарисовав ее в нужном месте, и отрегулируйте длину полосы прокрутки.
- Щелкните правой кнопкой мыши по полосе прокрутки.
- Выберите View Code из выпадающего списка. Откроется окно кода.
- Добавьте следующую строку под sub ScrollBar1_Scroll ().
TextBox2.Text = "Scrolling Values"
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Перетащите поле прокрутки. Текст — Значения прокрутки будут отображаться в текстовом поле, как вы указали его в качестве действия для прокрутки полосы прокрутки.
MsgBox ()
Вы можете использовать функцию MsgBox () для отображения сообщения, когда вы нажимаете на что-то. Это может быть руководство или некоторая информация или предупреждение или предупреждение об ошибке.
Например, вы можете отобразить сообщение о том, что значения прокручиваются, когда вы начинаете прокручивать поле прокрутки.
Отображается значок окна сообщения
Вы можете использовать значки сообщений в окне, которые изображают конкретное сообщение. У вас есть несколько значков сообщений в соответствии с вашими целями —
- Введите следующий код в ScrollBar1_scroll.
MsgBox "Select Ok or Cancel", vbOKCancel, "OK - Cancel Message" MsgBox "It's an Error!", vbCritical, "Run time result" MsgBox "Why this value", vbQuestion, "Run time result" MsgBox "Value Been for a Long Time", vbInformation, "Run time result" MsgBox "Oh Is it so", vbExclamation, "Run time result"
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Перетащите поле прокрутки.
Вы получите следующие сообщения последовательно.
Разработка UserForm
Теперь у вас есть понимание различных элементов управления, которые вы можете использовать в пользовательской форме. Выберите элементы управления, сгруппируйте их, если необходимо, и расположите их в пользовательской форме в соответствии с некоторой значимой последовательностью. Запишите необходимые действия в виде кода, соответствующего соответствующим элементам управления.
Обратитесь к учебнику VBA в этой библиотеке учебников для примера UserForm.