Как использовать VBA UserForm управления
Пользовательские формы в VBA используются для ввода данных от пользователя, а иногда и для отображения результатов и сообщений. Узнайте об основах пользовательской формы link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [здесь]
.
Пользовательские формы могут иметь несколько различных компонентов для входных данных.
Эти компоненты называются элементами управления пользовательской формы.
Существует несколько типов элементов управления пользовательской формы, каждый из которых имеет разные свойства и используется по разным причинам. Полезно знать, как и когда использовать каждый тип элемента управления userform. В этой статье мы узнаем, как использовать UserForm Control в Excel VBA.
Типы элементов управления UserForms
В VBA слишком много элементов управления пользовательской формы. Если мы рассмотрим их в этой статье, мы сосредоточимся только на основных элементах управления формой.
1: Ярлыки
2: TextBox
3: ComboBox
4: ListBox
5: CheckBox
6: OptionButton
7: ToggleButton
8: CommandButton
9: Рамки
Давайте посмотрим на все эти элементы управления.
Ярлыки:
Этикетки используются просто для отображения текстовых меток. Как метка для области ввода, предупреждения, направления и т. Д.
Чтобы добавить метку в пользовательскую форму, просто выберите параметр «Метка» (значок A) в ToolBox. Курсор превратится в знак плюса. Перетащите в область, где вы хотите разместить метки.
TextBox:
Текстовое поле — это базовая открытая опция ввода от пользователя. Пользователь может просто ввести данные, которые он хочет дать. Базовый сценарий — это входные данные имени.
Если вы хотите, чтобы при наведении курсора мыши на текстовое поле отображалось какое-либо сообщение, напишите его в ControlTipText в окне свойств.
ComboBox:
Комбоксы используются для отображения списка элементов при нажатии. Пользователь может легко выбрать любой из отображаемых элементов из этого списка или ввести ввод самостоятельно.
Мы используем ComboBox в Excel VBA, когда у нас есть необязательный список для выбора пользователем. Пользователи могут выбирать из списка или вводить ответ вручную.
Выберите поле со списком на панели инструментов и перетащите его по форме. Поле со списком сразу вставляется в форму. Имя combox по умолчанию будет Combobox1, 2, 3 и т. Д. Вы можете изменить его в окне свойств.
Как вставлять элементы в ComboBox?
Итак, теперь вы добавили поле со списком в нашу форму. Но когда мы загружаем пользовательскую форму, она ничего не показывает в поле со списком. Это потому, что мы еще не добавили никаких элементов в поле со списком.
В этом примере я хочу добавить элементы в поле со списком при инициализации (загрузке) пользовательской формы. Итак, мы будем использовать пользовательскую форму даже «Инициализировать».
Щелкните правой кнопкой мыши форму пользователя (не какой-либо компонент), чтобы выбрать всю форму пользователя. Выберите код просмотра.
Из link: / events-in-vba-the-events-in-excel-vba [events]
, выберите инициализировать.
Теперь используйте свойство AddItem класса ComboBox и добавьте столько элементов, сколько хотите.
Private Sub UserForm_Initialize() ComboBox1.AddItem "2016" ComboBox1.AddItem "2017" ComboBox1.AddItem "2018" ComboBox1.AddItem "2019" ComboBox1.AddItem "2020" End Sub
Поскольку мы добавляем элементы в событие UserForm_Initialize (), все элементы будут добавлены в поле со списком при загрузке пользовательской формы.
Получение выбранного элемента из ComboBox
Чтобы использовать выбранный элемент из поля со списком, мы просто используем свойство Value ComboBox.
Private Sub CommandButton1_Click() MsgBox ComboBox1.Value End Sub
Здесь мы показываем значение, которое мы выбрали, когда пользователь нажимает кнопку команды (мы перейдем к событию нажатия кнопки команды ниже).
Список
ListBox используется, когда мы хотим, чтобы пользователь выбирал из определенного списка.
Похоже на ComboBox? Да, список очень похож на ComboBox, за исключением того, что пользователь не может ввести свой ответ в списке.
Они должны выбирать только из доступных вариантов.
Чтобы вставить список в форму, выберите его в панели инструментов и перетащите курсор в область формы.
Имя по умолчанию для списка будет генетически listbox1, 2, 3 и т. Д.
Вы можете изменить его в окне свойств.
Как и ComboBox, список VBA изначально пуст. Для его инициализации мы просто используем свойство add класса listbox.
Как добавить элементы в список?
Когда мы добавили элементы в список combobox в событиях инициализации формы, мы добавим элементы listbox в то же событие. Просто отредактируйте указанное выше событие инициализации, чтобы добавить элементы при загрузке пользовательской формы.
Private Sub UserForm_Initialize() ComboBox1.AddItem "2016" ComboBox1.AddItem "2017" ComboBox1.AddItem "2018" ComboBox1.AddItem "2019" ComboBox1.AddItem "2020" 'Adding Item to List ListBox1.AddItem "Jan" ListBox1.AddItem "Feb" ListBox1.AddItem "Mar" ListBox1.AddItem "Apr" ListBox1.AddItem "May" ListBox1.AddItem "Jun" ListBox1.AddItem "Jul" ListBox1.AddItem "Aug" ListBox1.AddItem "Sep" ListBox1.AddItem "Oct" ListBox1.AddItem "Nov" ListBox1.AddItem "Dec" End Sub
Приведенный выше код добавит названия месяцев в список, как только мы загрузим форму.
Получение выбранного элемента из ListBox
Чтобы получить элемент, выбранный пользователем в ListBox, мы используем свойство Value объекта listbox.
Здесь мы добавляем месяц, выбранный пользователем, к вводу, указанному в поле со списком.
Private Sub CommandButton1_Click() MsgBox ComboBox1.Value & "-" & ListBox1.Value End Sub
Когда мы нажимаем кнопку команды, мы получаем выбранные элементы, показанные нам в окне сообщений.
CheckBox VBA Control
CheckBoxes — это двоичные элементы управления, которым можно присвоить значение True или False.
Вы можете установить несколько флажков и установить более одного флажка одновременно. Это в основном используется, когда пользователю нужно иметь возможность выбрать более одного варианта. Как вопросы с несколькими вариантами ответов.
Чтобы добавить флажки в пользовательскую форму, просто выберите его в панели инструментов и перетащите в область пользовательской формы VBA.
Когда вы добавляете флажки в пользовательскую форму, имена флажков по умолчанию выглядят как checkbox1, checkbox2 и т. Д. Вы можете изменить имя флажков в окне свойств.
Как использовать флажки в форме пользователя?
Как только вы добавите флажки, они станут активными. Пользователи могут отмечать или снимать их. Но как узнать, какой флажок установлен, а какой нет?
Как я уже сказал, флажки являются логическими. Итак, если флажок установлен, его значение равно True, в противном случае его значение равно False.
Приведенный ниже код проверяет, какие флажки установлены, и показывает их в поле сообщения.
Private Sub CommandButton1_Click() Dim msg As String If CheckBox1.Value = True Then msg = msg & "CheckBox1 is selected" End If If CheckBox2.Value = True Then msg = msg & vbCrLf & "CheckBox2 is selected" End If MsgBox msg End Sub
Если вы хотите, чтобы пользователь мог выбрать только один вариант в пользовательской форме, используйте переключатели.
Элемент управления OptionButton VBA
Переключатели / переключатели используются в пользовательской форме VBA, когда мы хотим, чтобы пользователь выбрал только один вариант из доступных. Например, когда формы спрашивают пол, предпочитаемый язык, возрастную группу и т. Д.
Радиокнопку можно легко добавить в форму пользователя, выбрав ее в инструментах и перетащив в область формы. Перетащите переключатели несколько раз для нескольких переключателей.
Как получить выбор переключателя / кнопки выбора?
Радиокнопки являются двоичными. Их значение может быть Истина или Ложь.
Выбранный переключатель будет установлен на True, а все остальные станут на false. Только одна радиокнопка будет верной в группе.
В приведенном ниже коде просто проверяется, какой переключатель выбран, и отображается соответствующее сообщение.
Private Sub CommandButton1_Click() Dim gender As String If OptionButton1.Value = True Then gender = "Male" ElseIf OptionButton2.Value = True Then gender = "female" Else gender = "other" End If MsgBox gender End Sub
Обратите внимание, что в приведенном выше примере в форме пользователя можно выбрать только одну кнопку выбора. Но что, если вы хотите иметь несколько групп переключателей. В этом случае мы используем фреймы. И это подводит нас к…
Фреймы в пользовательской форме VBA
Фреймы используются для группирования объектов пользовательской формы, таких как флажки и переключатели.
Чтобы использовать фреймы, сначала перетащите этот фрейм в область формы, а затем отпустите другие объекты в этом фрейме.
Вы можете изменить название кадра из заголовка в поле свойств.
Все события доступны как для фреймов, так и для других объектов пользовательской формы. Но желательно просто использовать их для группировки объектов. Вы можете установить события onclick на кадре, чтобы загружать некоторую базовую информацию об объектах в нем при щелчке.
Кнопки переключения в пользовательской форме VBA
Кнопки переключения также являются двоичными объектами, которые можно включать и выключать. Вы можете использовать кнопки-переключатели, чтобы включать и выключать что-либо.
Чтобы добавить кнопку-переключатель в пользовательскую форму, просто выберите ее из инструментов и перетащите в область формы.
Приведенный ниже код установлен для события onclick кнопки переключения. Он меняет цвет ячейки A1 на синий при нажатии кнопки переключения и сбрасывает его при нажатии кнопки переключения.
Private Sub ToggleButton1_Click() If ToggleButton1.Value Then Range("A1").Interior.ColorIndex = 32 Else Range("A1").Interior.ColorIndex = xlColorIndexNone End If End Sub
Командные кнопки в пользовательской форме VBA
Это кнопки, которые мы используем для выполнения основного кода VBA, такого как проверки, вычисления, отправка форм и т. Д.
В приведенных выше примерах я использовал командную кнопку для отправки формы. В пользовательской форме может быть столько кнопок команд, сколько захотите.
Чтобы выполнить коды при нажатии кнопки, просто дважды щелкните кнопку. Он откроет событие CommandButton_Click. Напишите здесь код, который будет выполняться при нажатии кнопки команды.
Приведенный ниже код будет запущен, когда вы нажмете кнопку «Готово», и он также закроет пользовательскую форму.
Private Sub CommandButton1_Click() Dim gender As String If OptionButton1.Value = True Then gender = "Male" ElseIf OptionButton2.Value = True Then gender = "female" Else gender = "other" End If MsgBox gender Unload UserForm1 'closes userform End Sub
Так что да, ребята, это основные элементы управления пользовательской формой в VBA. Надеюсь, это было полезно. Если у вас есть какие-либо сомнения относительно элементов управления пользовательской формы и событий пользовательской формы, запишите их в разделе комментариев ниже.
Похожие статьи
link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Начало работы с пользовательскими формами Excel VBA]
| Пользовательские формы Excel полезны для получения информации от пользователя. Вот как вам следует начать со ссылкой на пользовательские формы VBA: / user-forms-input-box-in-vba-change-the-valuecontent-of-нескольких-userform-controls-using-vba-in-microsoft-excel [Изменить значение / содержимое нескольких UserForm-элементов управления с использованием VBA в Excel] `| Чтобы изменить содержимое элементов управления пользовательской формы, используйте этот простой фрагмент кода VBA.
`link: / user-forms-input-box-in-vba-prevent-a-userform-from-closed-when-the-user-clicks-the-x-button-using-vba-in-microsoft-excel [ Предотвратить закрытие формы пользователя, когда пользователь нажимает кнопку x, используя VBA в Excel] `| Чтобы предотвратить закрытие пользовательской формы, когда пользователь нажимает кнопку x формы, мы используем событие UserForm_QueryClose.
Популярные статьи:
link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-повышения-продуктивность [50 сочетаний клавиш Excel для повышения производительности]
| Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.
link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel]
| Это одна из наиболее используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов. link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016]
| Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.
Функция Countif важна для подготовки вашей приборной панели.
link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel]
| Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.