Sådan bruges VBA -kontroller i UserForms

Denne artikel vil demonstrere, hvordan du bruger Controls i UserForms i Excel VBA.

VBA har mulighed for at oprette formularer, som brugeren kan interagere med, f.eks. Fakturaformularer eller kontaktoplysninger. En formular kan indeholde en række forskellige formkontroller, f.eks. Tekstbokse, kombinationsbokse, listebokse og kommandoknapper. Denne artikel vil dække de mest populære kontroller, der bruges på brugerformularer, nemlig tekstbokse, etiketter, kombinationsbokse, listebokse, afkrydsningsfelter og valggrupper.

Hvis du vil vide mere om indbyggede brugerformularer og oprettelse af brugerdefinerede brugerformularer i Excel, skal du klikke her.

Oprettelse af en UserForm

For at oprette en UserForm i Excel VBA skal vi først åbne VBE Editor.

Hvis du vil indsætte en ny brugerformular i din kode, skal du vælge UserForm fra menuen Indsæt.

En ny brugerformular vises i Projekt Explorer og vil blive vist i kodevinduet til højre.

Du kan omdøbe din formular ved hjælp af Ejendomme boks. Dette skal vises under din Projekt Explorer.

Hvis det er så synligt, skal du trykke på F4 eller klik Udsigt, Egenskaber vindue.

Klik i Navn ejendom og omdøb din formular.

Vi kan nu begynde at udfylde vores formular med kontroller - tekstbokskontrollen er den mest populære kontrol sammen med etiketstyringen og kommandoknappen.

For at udfylde formularen med kontroller skal vi tænde Værktøjskassen.

I Menu, Vælg Vis> Værktøjskasse.

Oprettelse af en tekstboks

Hvis du vil oprette en tekstboks på din formular, skal du vælge kontrolboksen Tekstboks i værktøjskassen.

Træk en boksform på formularen med musen, hold venstre knap nede, og slip derefter museknappen.

Da dette er den første tekstboks, vi opretter, får den navnet TextBox1. Som med formularen kan du bruge vinduet Egenskaber til at omdøbe tekstfeltet.

Vi kan fortsætte med at oprette så mange tekstbokse i vores formular, som vi kræver, og navngive dem efter behov ved hjælp af egenskaben Navn i vinduet Egenskaber.

Oprettelse af en etiketkontrol

En etiketkontrol fortæller os, hvad tekstboksen skal bruges til at indeholde. Du trækker formularen på samme måde, som du gør for en tekstboks, og derefter kan du indtaste den nødvendige tekst inden for etiketkontrollen f.eks .: Fornavn som vist herunder.

Som med tekstfelterne skal du fortsætte med at oprette så mange, som der kræves i formularen.

Oprettelse af en kombinationsboksstyring

En kombinationsboks (eller en rulleliste) giver brugeren mulighed for at vælge fra en liste med værdier. For at oprette en kombinationsboks skal du klikke i værktøjskassen på kombinationsboksen, og klikke og trække kombinationsboksen i din form.

Navngiv kombinationsboksen korrekt.

Tilføjelse af værdier til kombinationsboksen

For at udfylde det med værdier skal vi kode ind i Initialiser metode til brugerformularobjektet.

For at komme til koden bag formularen (CBF) skal du enten dobbeltklikke på formularen eller klikke på kodeknappen i Project Explorer for at skifte til kodevisning.

Vælg Brugerformular på rullelisten til venstre, og vælg derefter Initialiser på rullelisten til højre.

Indtast følgende kode i Sub og End Sub for at udfylde rullemenuen:

1234 Me.cboState.AddItem "Alabama"Me.cboState.AddItem "Alaska"Me.cboState.AddItem "Arizona"Me.cboState.AddItem "Arkansas"

Vi kan naturligvis fortsætte med at udfylde listen med resten af ​​staterne i USA!

For at køre brugerformularen for at se listen i aktion, 1) skift tilbage til formularvisning og derefter, 2) i værktøjslinjen, klik på Løb knap.

Klik på rullemenuen for at se listen.

Vi kan også bruge et område i Excel til at udfylde kombinationsboksen.

123456 Privat underbrugerForm_Initialize ()Dim rng Som områdeFor hver rng In Range ("A1: A50")Me.cboState.AddItem rng.ValueNæste rngAfslut Sub

Dette henter alle værdier, der er gemt i område A1 til A50, og udfyld rullelisten i overensstemmelse hermed.

Oprettelse af en listeboksstyring

En List Box -kontrol fungerer på samme måde som en Combo Box -kontrol, men giver os mulighed for at se alle mulighederne på formularen i et listeformat.

Vælg kontrolboksen Listeboks i værktøjskassen, og træk derefter for at oprette en listeboks på din formular.

Træt af at søge efter eksempler på VBA -kode? Prøv AutoMacro!

Tilføjelse af værdier til listeboksen

I formularen Initialiser hændelse skal du indtaste følgende kode:

123456 Privat underbrugerForm_Initialize ()Dim rng Som områdeFor hver rng In Range ("A1: A50")Me.lstState.AddItem rng.ValueNæste rngAfslut Sub

Når vi kører formularen, vises listeboksen som vist på billedet herunder:

Oprettelse af en afkrydsningsfeltkontrol

Afkrydsningsfelter gør det muligt for brugeren at markere eller fjerne markeringen af ​​en indstilling.

Marker afkrydsningsfeltet, og klik derefter på den formular, hvor du vil have det.

Ændre billedteksten og navnet på afkrydsningsfeltet i vinduet Egenskaber.

Oprettelse af en valggruppekontrol med optionsknapper

En indstillingsgruppe giver brugeren mulighed for at vælge mellem en række tilgængelige indstillinger. Det første trin i oprettelsen af ​​en valggruppe er at tilføje en rammekontrol til formularen og derefter tilføje valgknapperne inden for den ramme, der er tilføjet. Ved at gøre dette sikrer vi, at når vi kører formularen, kan kun en af ​​valgknapperne inden for rammen vælges ad gangen.

Vælg rammekontrollen i værktøjskassen, og træk derefter for at oprette en ramme på din formular.

Vælg kontrolelementet Option Button i værktøjskassen, og klik derefter på INDEN i rammen, der er oprettet ovenfor, for at tilføje optionsknappen til rammen. Gentag efter behov.

Klik på rammen og 1) rediger rammens navn og billedteksten. 2) Klik derefter på hver af valgknapperne og rediger billedteksten.

Oprettelse af en kommandoknap for at afslutte formularen

På dette tidspunkt er den eneste måde at lukke formularen ved at bruge knappen Luk i højre hjørne af formularstyringslinjen. En mere effektiv måde at afslutte en formular på, og som vi har mere kontrol over, er ved at oprette en Exit -knap på formularen. Dette gøres ved hjælp af Command Button Control i værktøjskassen.

Vælg kommandoknappen, og klik derefter på og træk i din formular for at oprette knappen.

Brug Caption -egenskaben til at ændre billedteksten på kommandoknappen til OK og Acceleratoren til "O"

Formålet med Acceleratoren er, at brugeren i dette tilfælde bruger tastaturet til at aktivere knappen Alt+O ville aktivere knappen.

Fantastisk produkt. AutoMacro skriver ikke bare din kode, den lærer, mens du går! " - Tony, Storbritannien

Lær mere

Læs vores 900+ anmeldelser

Tilføjelse af kode til kommandoknappen

For at kommandoknappen skal fungere, skal vi tilføje kode bag den, så når der klikkes på knappen, kører koden. Dette kaldes klikhændelsen på knappen.

For at komme til klikbegivenheden skal du dobbeltklikke på knappen i formularens designvisning.

1) Klikhændelsen oprettes automatisk, da dette er den hændelse, der oftest bruges til kommandoknapper.

2) Hvis vi skulle klikke i rullemenuen Procedure i højre side, ville vi se en liste over alle de hændelsesmetoder, der er tilgængelige for kommandoknappen. Denne liste ændres i henhold til hvilken type kontrol, vi har oprettet, da der er forskellige hændelser til rådighed for forskellige typer af kontroller.

Indtast følgende kode i klikhændelsen på kommandoknappen.

123456789101112131415 Privat under cmdOK_Click ()Område ("E1") = Me.txtFirstnameOmråde ("E2") = Me.txtSurnameOmråde ("E3") = Me.txtCellPhoneOmråde ("E4") = Me.cboStateHvis Me.ckContactInfo = True derefterRange ("E5") = "SMS tilladt"AndetRange ("E5") = "SMS ikke tilladt"Afslut HvisHvis Me.opt1.Value = True Then Range ("E6") = Me.opt1.CaptionHvis Me.opt2.Value = True derefter Range ("E6") = Me.opt2.CaptionHvis Me.opt3.Value = True Then Range ("E6") = Me.opt3.CaptionAflad migAfslut Sub

Vi kan derefter køre formularen, udfylde tekstfelterne og vælge fra rullelisten. Vi klikker derefter på OK for at indtaste oplysningerne i Excel.

wave wave wave wave wave