Как использовать элементы управления VBA в пользовательских формах

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

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

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

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

Чтобы создать UserForm в Excel VBA, нам сначала нужно открыть Редактор VBE.

Чтобы вставить новую пользовательскую форму в свой код, выберите UserForm вариант из меню "Вставить".

Новая форма пользователя появится в Обозреватель проекта и будет отображаться в окне кода справа.

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

Если насколько видно, нажмите F4 или щелкните Вид, Окно свойств.

Щелкните в Имя свойство и переименуйте форму.

Теперь мы можем начать заполнять нашу форму элементами управления - элемент управления текстовым полем является самым популярным элементом управления наряду с элементом управления меткой и командной кнопкой.

Чтобы заполнить форму элементами управления, нам нужно включить Toolbox.

в Меню, Выбрать Просмотр> Панель инструментов.

Создание текстового поля

Чтобы создать текстовое поле в форме, выберите элемент управления «Текстовое поле» на панели инструментов.

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

Поскольку это первое текстовое поле, которое мы создаем, оно будет называться TextBox1. Как и в случае с формой, вы можете использовать окно «Свойства», чтобы переименовать текстовое поле.

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

Создание элемента управления меткой

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

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

Создание элемента управления Combo Box

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

Назовите поле со списком соответствующим образом.

Добавление значений в поле со списком

Чтобы заполнить его значениями, нам нужно ввести код в Инициализировать метод объекта формы пользователя.

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

В раскрывающемся списке слева выберите Форма пользователя, а затем в раскрывающемся списке справа выберите Инициализировать.

Введите следующий код в Sub и End Sub, чтобы заполнить раскрывающийся список:

1234 Me.cboState.AddItem "Алабама"Me.cboState.AddItem "Аляска"Me.cboState.AddItem "Аризона"Me.cboState.AddItem "Арканзас"

Мы, конечно, можем продолжить этот список вместе с остальными штатами США!

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

Щелкните стрелку раскрывающегося списка, чтобы просмотреть список.

Мы также можем использовать диапазон в Excel для заполнения поля со списком.

123456 Частная подписка UserForm_Initialize ()Dim rng As RangeДля каждого диапазона в диапазоне ("A1: A50")Me.cboState.AddItem rng.ValueСледующий номерКонец подписки

Это выберет любые значения, хранящиеся в диапазоне от A1 до A50, и соответствующим образом заполнит раскрывающийся список.

Создание элемента управления List Box

Элемент управления List Box работает так же, как элемент управления Combo Box, но позволяет нам видеть все параметры формы в формате списка.

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

Устали искать примеры кода VBA? Попробуйте AutoMacro!

Добавление значений в список

В событии Initialize формы введите следующий код:

123456 Частная подписка UserForm_Initialize ()Dim rng As RangeДля каждого диапазона в диапазоне ("A1: A50")Me.lstState.AddItem rng.ValueСледующий номерКонец подписки

Когда мы запустим форму, появится список, как показано на изображении ниже:

Создание элемента управления флажком

Флажки позволяют пользователю установить или снять флажок.

Выберите элемент управления «Флажок», а затем щелкните в форме, куда вы хотите его поместить.

Измените заголовок и имя флажка в окне свойств.

Создание элемента управления группы параметров с помощью кнопок выбора

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

Выберите элемент управления «Фрейм» на панели инструментов и перетащите его, чтобы создать в форме фрейм.

Выберите элемент управления «Кнопка выбора» на панели инструментов, а затем щелкните ВНУТРИ кадра, созданного выше, чтобы добавить кнопку параметра в кадр. При необходимости повторите.

Щелкните рамку и 1) измените название рамки и заголовок. Затем 2) щелкните каждую из кнопок выбора и измените заголовок.

Создание командной кнопки для выхода из формы

На этом этапе единственный способ закрыть форму - использовать кнопку закрытия в правом углу панели управления формой. Более эффективный способ выхода из формы, над которым мы имеем больший контроль, - это создание кнопки выхода в форме. Это делается с помощью кнопки управления Command на панели инструментов.

Выберите элемент управления Command Button, затем щелкните и перетащите в форму, чтобы создать кнопку.

Используя свойство Caption, измените заголовок командной кнопки на OK, а ускоритель на «O».

Назначение ускорителя состоит в том, чтобы пользователь использовал клавиатуру для активации кнопки, в данном случае Alt + O активирует кнопку.

Большой продукт. AutoMacro не просто пишет ваш код, он учит вас на ходу! »- Тони, Великобритания

Учить больше

Прочтите наши 900+ обзоров

Добавление кода к командной кнопке

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

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

1) Событие Click будет создано автоматически, так как это событие чаще всего используется для командных кнопок.

2) Если бы мы щелкнули в раскрывающемся списке «Процедура» с правой стороны, мы бы увидели список всех методов событий, доступных для кнопки Command. Этот список изменяется в зависимости от того, какой тип элемента управления мы создали, поскольку для разных типов элементов управления доступны разные события.

Введите следующий код в событие щелчка командной кнопки.

123456789101112131415 Частная подпрограмма cmdOK_Click ()Диапазон ("E1") = Me.txtFirstnameДиапазон ("E2") = Me.txtSurnameДиапазон ("E3") = Me.txtCellPhoneДиапазон ("E4") = Me.cboStateЕсли Me.ckContactInfo = True, тоRange ("E5") = "SMS разрешено"ЕщеRange ("E5") = "SMS не разрешены"Конец, еслиЕсли Me.opt1.Value = True, то Range ("E6") = Me.opt1.CaptionЕсли Me.opt2.Value = True, то Range ("E6") = Me.opt2.CaptionЕсли Me.opt3.Value = True, то Range ("E6") = Me.opt3.CaptionРазгрузить меняКонец подписки

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

wave wave wave wave wave