VBA UserForm

Excel VBA användarformulär

Användarformulär i VBA är anpassade användardefinierade formulär som är gjorda för att ta inmatning från en användare i form av ett formulär. Den har olika uppsättningar kontroller för att lägga till, till exempel textrutor, kryssrutor, etiketter osv för att vägleda en användare att mata in ett värde och det lagrar värdet i kalkylbladet, varje del av användarformuläret har en unik kod med sig.

Användarform är ett objekt i Excel-gränssnittet och i detta användarformulär kan vi skapa andra användbara anpassade dialogrutor för att få data från användaren. När du arbetar med en makrofil som skapats av din senior eller kan laddas ner från internet måste du ha sett ett användarformulär som detta.

I den här artikeln visar vi dig hur du skapar ett liknande användarformulär för att lagra data från användaren.

Hur skapar man användarformulär?

Liksom hur du sätter in en ny modul på liknande sätt måste du klicka på INSERT-knappen i Visual Basic Editor för att infoga användarform.

Du kan ladda ner denna VBA-användarformulär Excel-mall här - VBA-användarformuläret Excel-mall

Så snart du klickar på detta kommer användarformuläret att infogas.

Innan jag berättar hur du programmerar det här kan jag visa dig hur du formaterar detta användarformulär.

Formatera användarformulär

Genom att välja användarformulär trycker du på F4-tangenten för att visa dig egenskapsfönstret.

Med detta fönster kan vi formatera detta användarformulär, vi kan namnge det, vi kan ändra färg, kantstil osv ...

Gilla detta prova andra egenskaper för att få syn på användarform.

Nu för denna användarform infoga verktygslådan.

Nu ser vi en verktygslåda som den här.

För närvarande är användarformen bara infogad, inte programmerad. För att veta hur det fungerar klickar du bara på kör-knappen, vi ser formuläret i Excel-kalkylbladet.

Använd nu verktygslådans ritningsetikett.

Ange texten som anställds namn i etiketten.

För den här etiketten kan vi formatera med egenskaper. Nu har vi skrivit in texten som ”Anställds namn:” nu kan vi se detta i fastighetsfönstret under Bildtexter.

Sätt in ytterligare en etikett. För att infoga ytterligare en etikett kan du antingen klicka på en verktygslåda eller så kan du dra den aktuella etiketten genom att hålla ned Ctrl- tangenten, du får en replik av den aktuella etiketten.

Nu kommer vi att ha samma etikett.

Ändra namnet till anställd-ID.

Sätt nu på samma sätt en etikett till och namnge den som "Avdelning".

Nu från verktygslådan infoga en textruta.

Namnge denna textruta som EmpName i egenskapsfönstret.

Gilla detta infoga ytterligare två textrutor från från anställds ID respektive avdelning. Namnge dessa textrutor enligt deras rubrik.

På samma sätt gör det för avdelningen.

Nu från verktygslådan infoga kommandoknappen.

Ändra kommandoknappens namn till “SubmitButton” och ändra texten till “Submit”.

Sätt in ytterligare en knapp och kalla den ”Avbryt”.

Nu är det bara att se kör genom att trycka på kör-knappen eller använda F5-tangenten och se hur din användarform ser ut i Excel.

Nu kommer det till formen.

VBA-kod

Nu kommer användaren att ange data i detta, så vi måste programmera detta för att lagra de uppgifter som användaren har angett på detta formulär.

Dubbelklicka på SUBMIT-knappen, det tar dig till makrofönstret med ett automatiskt skapat makro som nedan.

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.