Innebygde diagramhendelser ved hjelp av VBA i Excel

Å bruke diagramarkhendelser (regneark spesielt for diagrammer) er ganske enkelt. Men når det gjelder bruk av hendelser på innebygde diagrammer, er det ikke så enkelt. Men jeg kan forsikre deg om at hendelser med innebygde diagrammer ikke er så vanskelige å aktivere. Det er omtrent som å lage applikasjonshendelser. Så uten ytterligere forsinkelse, la oss komme i gang.

Så det er to trinn for å aktivere en innebygd karthendelse. Først er det å lage diagramhendelseklasse og definere hendelser. For det andre er det å lage et objekt for hendelsesklassen. Det er det.

Trinn 1: Lag diagramhendelseklasse og definer hendelser

  • Sett inn en klassemodul. Gi det navnet du vil. Jeg kalte det ChartClass.
  • Definer en hendelsesvariabel av diagramtype med søkeordet WithEvents.
    Private WithEvents CEvents As Chart
  • Initialiser denne hendelsen i class_initialize () underprogram.
    Velg klasse fra rullegardinmenyen til venstre. Velg deretter initialiser øverst til høyre på rullegardinlisten.

    Private Sub Class_Initialize () Sett CEvents = ActiveSheet.ChartObjects (1) .Chart End Sub 

    Her initialiserer vi CEvents -diagrammet med det første diagrammet som ble opprettet på det arket. 1 er indeksnummeret for diagramobjekter på det aktive arket.

  • Nå definer hendelsene du vil bruke. Velg CEvent-objektet fra rullegardinmenyen øverst til venstre. Alle tilgjengelige prosedyrer for håndtering av hendelser vil være tilgjengelige for deg i nedtrekksmenyen øverst til høyre. Velg det du trenger, og definer hva du vil gjøre når hendelsen utløses.
    For å demonstrere bruken, velger jeg CEvents_Activate -hendelsen. Jeg skal prøve å vise brukeren at karthendelsen er aktivert i en meldingsboks.

    Private Sub CEvents_Activate () MsgBox "Diagrammet Hendelser fungerer" Slutt Sub 

Vårt arbeid her er gjort. Du kan opprette så mange hendelser du vil fra de tilgjengelige hendelsene for diagramtype her. Men hendelsene vil ikke fungere ennå fordi det bare er en klasse. Vi må lage objektet for denne klassen i en sub i en hvilken som helst normal modul eller objektmodulen. Kjør deretter den suben. Etter det begynner arrangementet vårt å fungere.

Trinn 2: Lag diagramklasseobjektet i modulen.

  • Sett inn en normal modul.
  • Angi en variabel av klassen du opprettet før.
    Dim mychart As ChartClass
  • Lag en sub og initialiser variabelen med objektet i klassen ChartClass.
    Sub activeChartEvent () Sett mychart = New ChartClass End Sub

  • Kjør denne suben ved hjelp av F5. Ettersom du vil kjøre denne koden, vil diagramhendelser være aktive for det første diagrammet på det aktive arket som vi brukte denne linjen for initialisering av diagramhendelsett CEvents = ActiveSheet.ChartObjects (1) .Chart.

Og det er gjort. Hvis du klikker på det første diagrammet på det aktive arket, vil det vise meldingen om at diagramhendelsene fungerer.

Slå VBA -applikasjonshendelser på og av

Når du kjører makroen i den vanlige modulen, vil den alltid utløses til du lukker arbeidsboken som inneholder hendelsene. Men det kan være lurt å slå dem på og av etter ønske. Det er to måter å gjøre dette på.

  • Opphev hendelsesobjektet
  • Sett EnableEvents til False

1. Nullifisere hendelsesobjektet

Angi hendelsesobjektet til Ingenting i en egen underprogram

Private Sub StopEvents () Set Mychart = Nothing End Sub

Når du kjører denne koden, slutter hendelsene å fungere. Du kan sette den i en knapp på regnearket for å stoppe hendelsene. Nå vil du ha to knapper for å starte og stoppe disse spesifikke hendelsene. Det vil bare stoppe hendelser opprettet av AppE -objektet.

2. Sett EnableEvents til False

Den andre metoden er å deaktivere hendelsene. For å gjøre alle hendelser utilgjengelige setter vi EnableEvents -egenskapen til Application -klassen tilFalsk.

Private Sub StopEvents () Application.EnableEvents = False End Sub

Koden ovenfor vil deaktivere alle hendelsene. Til og med standard excel -hendelser. De vil ikke fungere før du starter dem igjen. Selv om du kjører Startrutene () underprogrammet (ovenfor), vil hendelsen ikke fungere. For at alle hendelser skal fungere igjen, må du sette EnableEvents -egenskapen igjen til True.

Så hvis du vil at hendelsene skal fungere hver gang du starter hendelsene, kan du legge til denne kodelinjen i suben.

Private Sub StartEvents () Application.EnableEvents = True Set mychart = New ChartClass End Sub

Starter Custome Chart Events hver gang arbeidsbok åpnes

Hvis du utvikler et verktøy for sluttbruker, vil du kanskje at hendelsene skal fungere automatisk. I så fall kan du sette hendelsesstarteren i arbeidsbokobjektet med hendelsen Workbook_open (), i stedet for i en vanlig modul. Dette vil gjøre hendelsesobjektet initialisert så snart du åpner arbeidsboken som inneholder hendelsene.

Så ja, gutta, slik kan du bruke den innebygde diagramhendelsen i excel. Gi meg beskjed om dette var forklarende nok og hjalp deg med å forstå hendelser på applikasjonsnivå i Excel VBA. Skriv ned tankene dine i kommentarfeltet nedenfor. Hvis du har noe å legge til i dette, kan du skrive det ned også. Du kan stille spørsmål knyttet til denne artikkelen eller et annet Excel VBA -relatert emne i kommentarfeltet nedenfor.

Last ned arbeidsfilen nedenfor:

Hendelsene i Excel VBA |Det er syv typer hendelser i Excel. Hver hendelse avhenger i forskjellige omfang. Application Event omhandler på arbeidsboknivå. Arbeidsbok på arknivå. Arbeidsarkhendelse på områdenivå.

Regnearket Hendelser i Excel VBA| Regnearkhendelsen er veldig nyttig når du vil at makroene skal kjøres når en spesifisert hendelse oppstår på arket.

Arbeidsbokhendelser ved bruk av VBA i Microsoft Excel | Arbeidsbokhendelsene fungerer på hele arbeidsboken. Siden alle arkene er en del av arbeidsboken, fungerer disse hendelsene også på dem.

Forhindre at en automacro/eventmacro kjøres ved hjelp av VBA i Microsoft Excel| For å forhindre kjøring av auto_open -makroen, bruk skift -tasten.

Kartlegg objekthendelser ved hjelp av VBA i Microsoft Excel| Diagrammene er komplekse objekter, og det er flere komponenter du har festet dem til. For å lage diagramhendelsene bruker vi klassemodulen.

Populære artikler:

50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene vil gjøre arbeidet ditt enda raskere i Excel.

VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.

COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke å filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.

Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave