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.

  • 🧩 GUI-kontroller: Knapper, kombinasjonsbokser, avmerkingsbokser og etiketter danner grensesnittet en bruker samhandler med i et regneark.
  • 🗂️ Skjemakontroller: Enkle kontroller som kjører én tilordnet makro og fungerer på begge Windows og Mac Excel.
  • ⚙️ ActiveX-kontroller: Rikere kontroller med mange egenskaper og hendelser, kodet i VBA, tilgjengelig på Windows Kun Excel.
  • 🔧 Forutsetning: Aktiver utviklerbåndet og lagre filen som en makroaktivert arbeidsbok før du legger til kontroller.
  • ▶ ️ ActiveX-eksempel: En kommandoknapp skriver ut strengen Guru99 VBA-opplæring i celleområdet A1 til A10 ved klikk.
  • 🖱️ Begivenheter: ActiveX-kontroller reagerer på hendelser som Klikk, Endre og GotFocus gjennom dedikerte underrutiner.

VBA-kontroller i Excel

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,

  1. Klikk på utviklerfanen
  2. Klikk på Sett inn rullegardinknapp

Du vil få opp følgende rullegardinpanel

VBA Form/GUI-kontroller i Excel

Hvis du holder musen over VBA-skjemakontroller, vil navnet på kontrollen vises som vist nedenfor

VBA Form/GUI-kontroller i Excel

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

Legge til GUI-kontroller i et regneark

Innstilling av GUI-kontrollegenskaper

Vi vil nå sette bildeteksten til knappen til noe mer beskrivende

Innstilling av GUI-kontrollegenskaper

  1. Høyreklikk på like-knappen som vi nettopp har opprettet
  2. Velg egenskapsmenyen
  3. Du vil få opp følgende egenskapsvindu

Innstilling av GUI-kontrollegenskaper

  • 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.

Innstilling av GUI-kontrollegenskaper

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.

Forutsetning

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)

Forutsetning

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.

Bruk ActiveX-kontroll i VBA

Trinn 2) For å sette inn "clickcommandbutton1" dra musepekeren til Excel-ark.

Bruk ActiveX-kontroll i VBA

Trinn 3) Høyreklikk deretter på kommandoknappen og velg alternativet "Vis Code".

Bruk ActiveX-kontroll i VBA

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».

Bruk ActiveX-kontroll i VBA

Trinn 5) I neste trinn lagrer du kodefilen og går ut av redigeringsprogrammet. For å gå tilbake til Excel-filen, klikk på Excel-arkikonet Bruk ActiveX-kontroll i VBA på ytterste venstre.

Bruk ActiveX-kontroll i VBA

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.

Bruk ActiveX-kontroll i VBA

Trinn 7) Når designmodus er av, vil det ikke være noe grønt utheving på den. Nå kan du klikke på kommandoknappen.

Bruk ActiveX-kontroll i VBA

Trinn 8) Klikk på «Kommandoknapp1». Det vil skrive ut «Guru99 VBA-opplæring» i celleområdet «A1 til A10».

Bruk ActiveX-kontroll i VBA

Last ned Excel som inneholder koden ovenfor

Last ned Excel-filen ovenfor Code

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.

Spørsmål og svar

En skjemakontroll kjører én makro du tilordner den, og den fungerer på den. Windows og Mac. En ActiveX-kontroll programmeres i VBA, eksponerer mange egenskaper og hendelser, og er tilgjengelig på Windows Kun Excel.

Sett inn-menyen for skjema- og ActiveX-kontroller finnes på utviklerbåndet, som er skjult som standard. Aktiver den fra Fil, Alternativer, Tilpass båndet, og merk deretter av for Utvikler, slik at kontrollene og VBA-editoren blir tilgjengelige.

Knappen er sannsynligvis fortsatt i designmodus, vist med en grønn markering i Utvikler-fanen. Slå av designmodus slik at kontrollen kjører hendelseskoden. Arbeidsboken må også lagres som en makroaktivert .xlsm-fil.

Ja. AI-assistenter som Copilot skriver underrutinen Klikk eller Endre fra en enkel beskrivelse, for eksempel tømme området når knappen trykkes. Utvikleren limer den inn i kontrollens kodevindu og tester den.

Ja. Beskriv inndataene du trenger, så foreslår en AI-assistent en passende kontroll, for eksempel en kombinasjonsboks for en fast liste eller en avmerkingsboks for en ja- eller nei-verdi, og forklarer hvordan du angir de viktigste egenskapene.

Oppsummer dette innlegget med: