Пользовательские формы в 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: Рамки

Давайте посмотрим на все эти элементы управления.

Ярлыки:

Этикетки используются просто для отображения текстовых меток. Как метка для области ввода, предупреждения, направления и т. Д.

image

Чтобы добавить метку в пользовательскую форму, просто выберите параметр «Метка» (значок A) в ToolBox. Курсор превратится в знак плюса. Перетащите в область, где вы хотите разместить метки.

TextBox:

Текстовое поле — это базовая открытая опция ввода от пользователя. Пользователь может просто ввести данные, которые он хочет дать. Базовый сценарий — это входные данные имени.

image

Если вы хотите, чтобы при наведении курсора мыши на текстовое поле отображалось какое-либо сообщение, напишите его в ControlTipText в окне свойств.

image

ComboBox:

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

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

image

Выберите поле со списком на панели инструментов и перетащите его по форме. Поле со списком сразу вставляется в форму. Имя combox по умолчанию будет Combobox1, 2, 3 и т. Д. Вы можете изменить его в окне свойств.

image

Как вставлять элементы в ComboBox?

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

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

Щелкните правой кнопкой мыши форму пользователя (не какой-либо компонент), чтобы выбрать всю форму пользователя. Выберите код просмотра.

image

Из link: / events-in-vba-the-events-in-excel-vba [events]

, выберите инициализировать.

image

Теперь используйте свойство 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 (), все элементы будут добавлены в поле со списком при загрузке пользовательской формы.

image

Получение выбранного элемента из ComboBox

Чтобы использовать выбранный элемент из поля со списком, мы просто используем свойство Value ComboBox.

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value

End Sub

Здесь мы показываем значение, которое мы выбрали, когда пользователь нажимает кнопку команды (мы перейдем к событию нажатия кнопки команды ниже).

image

Список

ListBox используется, когда мы хотим, чтобы пользователь выбирал из определенного списка.

Похоже на ComboBox? Да, список очень похож на ComboBox, за исключением того, что пользователь не может ввести свой ответ в списке.

Они должны выбирать только из доступных вариантов.

Чтобы вставить список в форму, выберите его в панели инструментов и перетащите курсор в область формы.

Имя по умолчанию для списка будет генетически listbox1, 2, 3 и т. Д.

Вы можете изменить его в окне свойств.

image

Как и 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

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

image

Получение выбранного элемента из ListBox

Чтобы получить элемент, выбранный пользователем в ListBox, мы используем свойство Value объекта listbox.

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

Private Sub CommandButton1_Click()

MsgBox ComboBox1.Value & "-" & ListBox1.Value

End Sub

image

Когда мы нажимаем кнопку команды, мы получаем выбранные элементы, показанные нам в окне сообщений.

image

CheckBox VBA Control

CheckBoxes — это двоичные элементы управления, которым можно присвоить значение True или False.

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

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

image

Когда вы добавляете флажки в пользовательскую форму, имена флажков по умолчанию выглядят как 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

image

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

Элемент управления OptionButton VBA

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

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

image

Как получить выбор переключателя / кнопки выбора?

Радиокнопки являются двоичными. Их значение может быть Истина или Ложь.

Выбранный переключатель будет установлен на 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

image

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

Фреймы в пользовательской форме VBA

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

Чтобы использовать фреймы, сначала перетащите этот фрейм в область формы, а затем отпустите другие объекты в этом фрейме.

image

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

image

Все события доступны как для фреймов, так и для других объектов пользовательской формы. Но желательно просто использовать их для группировки объектов. Вы можете установить события onclick на кадре, чтобы загружать некоторую базовую информацию об объектах в нем при щелчке.

Кнопки переключения в пользовательской форме VBA

Кнопки переключения также являются двоичными объектами, которые можно включать и выключать. Вы можете использовать кнопки-переключатели, чтобы включать и выключать что-либо.

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

image

Приведенный ниже код установлен для события 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, такого как проверки, вычисления, отправка форм и т. Д.

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

image

Чтобы выполнить коды при нажатии кнопки, просто дважды щелкните кнопку. Он откроет событие CommandButton_Click. Напишите здесь код, который будет выполняться при нажатии кнопки команды.

image

Приведенный ниже код будет запущен, когда вы нажмете кнопку «Готово», и он также закроет пользовательскую форму.

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] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.