Пользовательская форма Excel VBA | Как создать интерактивную пользовательскую форму?

Пользовательская форма Excel VBA

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

Пользовательская форма - это объект в интерфейсе Excel, и внутри этой пользовательской формы мы можем создавать другие полезные настраиваемые диалоговые окна для получения данных от пользователя. Когда вы работаете с файлом макроса, который создается вашим руководителем или может быть загружен из Интернета, вы, должно быть, видели такую ​​пользовательскую форму.

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

Как создать пользовательскую форму?

Подобно тому, как вы вставляете новый модуль, вам нужно нажать кнопку INSERT в редакторе Visual Basic, чтобы вставить Userform.

Вы можете скачать этот шаблон VBA Userform Excel здесь - Шаблон VBA Userform Excel

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

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

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

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

Используя это окно свойств, мы можем отформатировать эту пользовательскую форму, мы можем назвать ее, мы можем изменить цвет, стиль границы и т. Д.

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

Теперь для этой пользовательской формы вставьте Toolbox.

Теперь мы увидим такой набор инструментов.

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

Теперь используем метку ToolBox.

Введите текст в качестве имени сотрудника внутри метки.

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

Вставьте еще одну этикетку. Чтобы вставить еще одну метку, вы можете щелкнуть на панели инструментов или перетащить текущую метку, удерживая клавишу Ctrl , у вас будет копия текущей метки.

Теперь у нас будет такая же этикетка.

Измените имя на ID сотрудника.

Теперь аналогичным образом вставьте еще один ярлык и назовите его «Отдел».

Теперь из панели инструментов вставьте текстовое поле.

Назовите это текстовое поле EmpName в окне свойств.

Таким же образом вставьте еще два текстовых поля из идентификатора сотрудника и отдела соответственно. Назовите эти текстовые поля в соответствии с их заголовками.

Точно так же поступите и с отделом.

Теперь из панели инструментов вставьте кнопку Command.

Измените имя командной кнопки на «SubmitButton» и измените заголовок на «Отправить».

Вставьте еще одну кнопку и назовите ее «Отмена».

Теперь просто чтобы увидеть запуск, нажмите кнопку запуска или нажмите клавишу F5 и посмотрите, как ваша пользовательская форма выглядит в Excel.

Теперь дело доходит до формы.

Код VBA

Теперь пользователь будет вводить в нее данные, поэтому нам нужно запрограммировать это для хранения данных, введенных пользователем в эту форму.

Дважды щелкните кнопку «ОТПРАВИТЬ», и вы попадете в окно макроса с автоматически созданным макросом, как показано ниже.

It says SubmitButton click, remember we had given a name for SUBMIT button as SubmitButton.

So, whenever we want to call this button we can call this by this name (submit button). Inside this macro copy and paste the below code.

Code:

 Private Sub SubmitButton_Click() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(LR, 1).Value = EmpName.Value Cells(LR, 2).Value = EmpID.Value Cells(LR, 3).Value = Dept.Value EmpName.Value = "" EmpID.Value = "" Dept.Value = "" End Sub 

  • EmpName.Value here EmpName is the text box name we had given while creating the employee name text box.
  • EmpID.Value here EmpID is the text box name of Employee ID text box.
  • Dept.Value this is department text box name.

So, on the click on submit button it will store the values in the mentioned cells.

Now double click on Cancel button, this will also show you the auto macro name like this.

Copy the below code and paste.

Code:

 Private Sub CancelButton_Click() MyUserForm.Hide End Sub 

MyUserForm is the name we had given to the userform. MyUserForm.Hide means on the click on the CANCEL button it will hide the userform.

Ok, now create a template like this in the worksheet.

Delete all the other sheets in the workbook except this template sheet.

Now go to Visual Basic Editor.

And run the macro using F5 key or manually, we will see user form in front of us.

Enter the employee name, employee id, and Department name.

Now if you click on the SUBMIT button, it will store the values on to the template we have created.

Like this you can keep entering the names, userform will keep storing the values entered by the user in the specified cells.

So by using USER FORM, we can actually create wonderful projects to get the information from the user.