VBA-kontroller i Excel: Skjema og ActiveX
⚡ Smart oppsummering
VBA-kontroller i Excel er de interaktive elementene, for eksempel knapper, avmerkingsbokser og tekstbokser, som bygger et grafisk brukergrensesnitt. Denne siden forklarer skjemakontroller, ActiveX-kontroller, hvordan de to familiene er forskjellige, og et trinnvis eksempel på en ActiveX-kommandoknapp.

VBA-kontroller: VBA-skjemakontroll og ActiveX-kontroller i Excel
VBA Form/GUI-kontroller i Excel
GUI er forkortelsen for Graphical User Interface. GUI er den delen av programmet som brukeren samhandler med. En GUI består av kontroller. Disse Excel VBA-kontrollene kan brukes i et skjema. Tabellen nedenfor viser noen av de mest brukte GUI VBA-kontrollene.
| S / N | Kontroll: | Tekniske beskrivelser |
|---|---|---|
| 1 | Kommando | Brukes til å kjøre kode |
| 2 | Combo Box | Brukes til å presentere en rullegardinliste for brukerne |
| 3 | Trykk her Box | Brukes for sanne eller usanne verdier. Flere avmerkingsbokser kan ha sann verdi samtidig. |
| 4 | Liste Box | Brukes til å presentere en enkel liste for brukerne |
| 5 | tekst Box | Brukes til å godta brukerinndata |
| 6 | Rullestang | Brukes for å gi et rullefelt for navigasjonsformål. |
| 7 | Spinn-knapp | Brukes til å øke eller redusere numeriske verdier ved å klikke på opp- eller nedpilene som vises i spinnknappen |
| 8 | Alternativknapp | Brukes for sanne eller usanne verdier. Bare én alternativknapp kan ha en sann verdi om gangen. |
| 9 | Etiketten | Brukes til å vise statisk tekst til brukeren |
| 10 | Bilde | Brukes til å vise bilder |
| 11 | Toggle Knapp | Knapp som har trykket og ikke trykket opp. |
I VBA GUI-kontrollen,
- Klikk på utviklerfanen
- Klikk på Sett inn rullegardinknapp
Du vil få opp følgende rullegardinpanel
Hvis du holder musen over VBA-skjemakontroller, vil navnet på kontrollen vises som vist nedenfor
Legge til GUI-kontroller i et regneark
Vi vil nå legge til en kommandoknapp i arbeidsboken vår, for det må vi
- Klikk på Sett inn rullegardinmenyen
- Klikk på kommandoknappen (ActiveX Control) som vist på bildet ovenfor
- Dra og tegn knappen på arket
Innstilling av GUI-kontrollegenskaper
Vi vil nå sette bildeteksten til knappen til noe mer beskrivende
- Høyreklikk på like-knappen som vi nettopp har opprettet
- Velg egenskapsmenyen
- Du vil få opp følgende egenskapsvindu
- Sett name-egenskapen til btnButton. Egenskapen name brukes til å identifisere kontrollen i kodevinduet. btn er prefikset for knappen.
- Sett Caption-egenskapen til Klikk meg. Teksten i bildetekstegenskapen er det brukerne vil se på knappen.
Lukk vinduet når du er ferdig.
Du vil få følgende resultater.
Forskjellen mellom skjemakontroller og ActiveX-kontroller
Excel tilbyr to kontrollfamilier, og å velge den riktige holder et prosjekt enkelt. Skjemakontroller er innebygd i Excel og kjører én tilordnet makro, mens ActiveX-kontroller er programmerbare objekter som reagerer på mange hendelser gjennom VBA-kode. Tabellen nedenfor sammenligner de to.
| Trekk | Skjemakontroller | ActiveX-kontroller |
|---|---|---|
| Oppsett | Enkelt; tilordne én makro til kontrollen | Krever VBA-hendelseskode for å svare |
| Eiendommer | Begrenset sett med alternativer | Omfattende, inkludert skrifttype, farge og oppførsel |
| Aktiviteter | Enkelthandling ved klikk | Mange arrangementer som Click, Change og GotFocus |
| kompatibilitet | fungerer på Windows og Mac Excel | fungerer på Windows Kun Excel |
| Passer best for | Raske, enkle arbeidsarkoppgaver | Interaktive og dynamiske brukerskjemaer |
Kort sagt, bruk en skjemakontroll når én enkelt makro er nok, og velg en ActiveX-kontroll når grensesnittet trenger omfattende egenskaper eller må reagere på flere brukerhendelser.
Forutsetning
Før du bygger ActiveX-eksemplet, må du klargjøre arbeidsboken slik at kontrollene er tilgjengelige og makroene kan lagres.
Konfigurer Microsoft Excel
Som vi ser i forrige veiledning, sørg for at båndet ditt har "Utvikler"-ikonet som vist her.
Gi nå nytt navn til ark1 til "VBA Operator» som vist på skjermbildet nedenfor. Lagre arbeidsboken i en Excel Macro-Enabled Workbook (*.xlsm)-filtype. (se bildet nedenfor)
Klikk deretter på Lagre-knappen.
Slik bruker du ActiveX-kontroll i VBA
Når arbeidsboken er klar, kan vi legge til en fungerende ActiveX-knapp. I denne delen av ActiveX-kontrollen i Excel skal vi se hvordan man integrerer «commandclick»-knappen i VBA og kjører et program ved hjelp av knappen.
Trinn 1) I dette trinnet klikker du på alternativet "sett inn-knapp" fra Active X-kontrollen. Velg deretter kommandoknappalternativet fra det.
Trinn 2) For å sette inn "clickcommandbutton1" dra musepekeren til Excel-ark.
Trinn 3) Høyreklikk deretter på kommandoknappen og velg alternativet "Vis Code".
Trinn 4) Sjekk at du er på rett ark. Et koderedigeringsprogram åpnes. Skriv inn koden din.
- I kode definerte vi området A1 til A10.
- Dette området definerer cellenummeret i Excel-arket fra "A1 til A10."
- Deretter definerer vi strengen «Guru99 VBA-opplæring» i kode
- Så når du klikker på «kommandoknappen» i Excel, skal det skrives ut «Guru99 VBA-opplæring» i celleområdet «A1 til A10».
Trinn 5) I neste trinn lagrer du kodefilen og går ut av redigeringsprogrammet. For å gå tilbake til Excel-filen, klikk på Excel-arkikonet på ytterste venstre.
Trinn 6) I Excel-arket vil du se kategorien Design Mode er på. Sørg for at den er "AV", ellers vil ikke koden din fungere.
Trinn 7) Når designmodus er av, vil det ikke være noe grønt utheving på den. Nå kan du klikke på kommandoknappen.
Trinn 8) Klikk på «Kommandoknapp1». Det vil skrive ut «Guru99 VBA-opplæring» i celleområdet «A1 til A10».
Last ned Excel som inneholder koden ovenfor
Vanlige ActiveX-kontrollhendelser i VBA
En ActiveX-kontroll er kraftig fordi den reagerer på hendelser, som er handlinger brukeren utfører på kontrollen. Hver hendelse kjører sin egen subrutine, slik at den samme knappen kan oppføre seg forskjellig avhengig av hva brukeren gjør. De vanligste hendelsene er listet opp nedenfor.
- Klikk – kjører koden når brukeren klikker på kontrollen, hendelsen som ble brukt i eksemplet ovenfor.
- Endring – kjører når verdien til en kontroll endres, for eksempel typing i en tekstboks eller ved å velge et element i en kombinasjonsboks.
- GotFocus / LostFocus – kjører når kontrollen får eller mister fokus, nyttig for å validere input.
- Tastetrykk – kjører når brukeren trykker på en tast mens kontrollen er aktiv.
- Musebevegelse – kjører når musepekeren beveger seg over kontrollen.
- Dobbeltklikk – kjører når brukeren dobbeltklikker på kontrollen.
For å legge til kode for en hendelse, slå på designmodus, høyreklikk på kontrollen og velg Vis Code, og velg hendelsen fra rullegardinlisten øverst i kodevinduet.
















