Потребителска форма на Excel VBA | Как да създам интерактивна потребителска форма?

Потребителска форма на Excel VBA

Потребителската форма във VBA са персонализирани дефинирани от потребителя форми, които са направени така, че да вземат входни данни от потребител във формата на формуляр, той има различни набори от контроли за добавяне, като текстови полета, етикети в квадратчета и т.н., които да насочват потребителя към въвеждане на стойност и той съхранява стойността в работния лист, всяка част от потребителската форма има уникален код със себе си.

Userform е обект в интерфейса на Excel и вътре в този потребителски формуляр можем да създадем други полезни потребителски диалогови прозорци, за да получим данните от потребителя. Когато работите с макро файл, който е създаден от вашия старши или може да бъде изтеглен от интернет, трябва да сте виждали потребителска форма като тази.

В тази статия ще ви покажем как да създадете подобна потребителска форма за съхраняване на данните от потребителя.

Как да създам потребителска форма?

Подобно на това как вмъквате нов модул по подобен начин, трябва да кликнете върху бутона INSERT в Visual Basic Editor, за да вмъкнете Userform.

Можете да изтеглите този шаблон на VBA Userform Excel тук - VBA Userform Excel шаблон

Веднага щом кликнете върху това, потребителският формуляр също ще бъде вмъкнат.

Преди да ви кажа как да програмирате това, нека ви покажа как да форматирате тази потребителска форма.

Форматиране на потребителска форма

Като изберете потребителската форма, натиснете клавиша F4, тя ще ви покаже прозореца със свойства.

С помощта на този прозорец за свойства можем да форматираме тази потребителска форма, можем да й дадем име, можем да променим цвета, стила на границата и т.н ...

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

Сега за тази потребителска форма вмъкнете Toolbox.

Сега ще видим кутия с инструменти като тази.

В този момент потребителската форма просто се вмъква, не е програмирана. За да разберете как работи, просто щракнете върху бутона за изпълнение, ще видим формуляра на работния лист на Excel.

Сега използваме етикета за рисуване ToolBox.

Въведете текста като име на служител в етикета.

За този етикет, за да можем да форматираме с помощта на свойства. Сега въведохме текста като „Име на служител:“, сега можем да видим това в прозореца на свойствата под надписи.

Поставете още един етикет. За да вмъкнете още един етикет, можете да щракнете върху кутия с инструменти или да плъзнете текущия етикет, като задържите клавиша Ctrl , ще имате реплика на текущия етикет.

Сега ще имаме същия етикет.

Променете името на Employee ID.

Сега по същия начин поставете още един етикет и го наречете „Отдел“.

Сега от кутията с инструменти вмъкнете текстово поле.

Наименувайте това текстово поле като EmpName в прозореца със свойства.

Подобно на това, вмъкнете още две текстови полета съответно от ID на служител и отдел Назовете тези текстови полета според заглавието им.

По същия начин го направете за отдела.

Сега от кутията с инструменти вмъкнете командния бутон.

Променете името на командния бутон на „SubmitButton“ и променете надписа на „Submit“.

Поставете още един бутон и го наречете „Отказ“.

Сега просто за да видите изпълнение, натиснете бутона за изпълнение или използвайте клавиша 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.