- Oprettelse af en UserForm
- Oprettelse af en tekstboks
- Oprettelse af en etiketkontrol
- Oprettelse af en kombinationsboksstyring
- Oprettelse af en listeboksstyring
- Oprettelse af en afkrydsningsfeltkontrol
- Oprettelse af en valggruppekontrol med optionsknapper
Oprettelse af en kommandoknap for at afslutte formularen
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 mereLæ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.