Indlejrede diagramhændelser ved hjælp af VBA i Excel

Indholdsfortegnelse:

Anonim

Brug af diagramarkhændelser (regneark især til diagrammer) er ret simpelt. Men når det kommer til at bruge begivenheder på indlejrede diagrammer, så enkelt er det ikke. Men jeg kan forsikre dig om, at begivenheder med indlejrede diagrammer ikke er så vanskelige at aktivere. Det er meget som at oprette applikationshændelser. Så lad os komme i gang uden yderligere forsinkelse.

Så der er to trin for at aktivere en integreret diagramhændelse. Først er at oprette diagramhændelsesklasse og definere begivenheder. For det andet er at oprette et objekt af denne hændelsesklasse. Det er det.

Trin 1: Opret diagrambegivenhedsklasse og definer begivenheder

  • Indsæt et klassemodul. Navngiv det som du vil. Jeg kaldte det ChartClass.
  • Definer en hændelsesvariabel af diagramtypen med søgeordet WithEvents.
    Private WithEvents CEhents As Chart
  • Initialiser denne begivenhed i klasse_initialiser () underprogram.
    Vælg klasse i rullemenuen til venstre. Vælg derefter initialiser i rullemenuen øverst til højre.

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

    Her initialiserer vi CEvents -diagrammet med det første diagram oprettet på dette ark. 1 er indeksnummeret for diagramobjekter på det aktive ark.

  • Definer nu de begivenheder, du vil bruge. Vælg CEvent-objektet i rullemenuen øverst til venstre. Alle de tilgængelige procedurer for håndtering af begivenheder vil være tilgængelige for dig i rullemenuen øverst til højre. Vælg det, du har brug for, og definer, hvad du vil gøre, når denne begivenhed udløses.
    For at demonstrere brugen vælger jeg CEvents_Activate -begivenheden. Jeg vil prøve at vise brugeren, at diagramhændelsen er aktiveret i en msg -boks.

    Privat under CEvents_Activate () MsgBox "Diagrammet Begivenheder fungerer" Afslut Sub 

Vores arbejde her er udført. Du kan oprette så mange begivenheder, du ønsker fra de tilgængelige begivenheder for diagramtype her. Men begivenhederne virker ikke endnu, fordi det bare er en klasse. Vi skal oprette objektet for denne klasse i en sub i ethvert normalt modul eller objektmodulet. Kør derefter den sub. Herefter begynder vores arrangement at fungere.

Trin 2: Opret diagramklasseobjektet i modulet.

  • Indsæt et normalt modul.
  • Angiv en variabel af den klasse, du har oprettet før.
    Dim mychart som ChartClass
  • Opret en sub og initialiser variablen med objektet i klassen ChartClass.
    Sub activeChartEvent () Indstil mychart = Ny ChartClass End Sub

  • Kør denne sub ved hjælp af F5. Når du kører denne kode, vil diagramhændelser være aktive for det første diagram på det aktuelt aktive ark, da vi brugte denne linje til initialisering af diagramhændelsessæt CEvents = ActiveSheet.ChartObjects (1) .Chart.

Og det er gjort. Hvis du nu klikker på det første diagram på det aktuelt aktive ark, viser det meddelelsen om, at Chart Events fungerer.

Slå VBA -applikationshændelser til og fra

Når du kører makroen i det normale modul, udløses det altid, indtil du lukker den projektmappe, der indeholder begivenhederne. Men du vil måske tænde og slukke dem efter din vilje. Der er to måder at gøre dette på.

  • Nulstil hændelsesobjektet
  • Indstil EnableEvents til Falsk

1. Nullificering af hændelsesobjektet

Indstil hændelsesobjektet til Intet i en separat underprogram

Private Sub StopEvents () Indstil Mychart = Intet slutter Sub

Når du kører denne kode, stopper hændelserne med at fungere. Du kan sætte den i en knap på regnearket for at stoppe begivenhederne. Nu har du to knapper til at starte og stoppe disse specifikke begivenheder. Det stopper bare begivenheder, der er oprettet af AppE -objektet.

2. Indstil EnableEvents til Falsk

Den anden metode er at deaktivere begivenhederne. For at gøre alle begivenheder utilgængelige satte vi egenskaben EnableEvents i applikationsklassen tilFalsk.

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

Ovenstående kode deaktiverer alle hændelser. Selv standard excel -begivenheder. De virker ikke, før du starter dem igen. Selvom du kører underprogrammen StartEvents () (ovenfor), fungerer hændelsen ikke. For at få alle hændelser til at fungere igen, skal du indstille egenskaben EnableEvents igen til True.

Så hvis du vil have dine begivenheder til at fungere hver gang du starter begivenhederne, skal du tilføje denne kodelinje i suben.

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

Start Custome Chart Events hver gang Workbook åbnes

Hvis du udvikler et værktøj til slutbruger, vil du måske gerne have, at begivenhederne fungerer automatisk. I så fald kan du placere begivenhedsstarteren i Workbook -objektet med Workbook_open () -hændelsen i stedet for i et normalt modul. Dette vil få dit hændelsesobjekt initialiseret, så snart du åbner den projektmappe, der indeholder begivenhederne.

Så ja fyre, sådan kan du bruge den indlejrede diagramhændelse i excel. Lad mig vide, om dette var forklarende nok og hjalp dig med at forstå begivenheder på applikationsniveau i Excel VBA. Skriv dine tanker ned i kommentarfeltet herunder. Hvis du har noget at tilføje til dette, så skriv det også ned. Du kan stille dine forespørgsler vedrørende denne artikel eller ethvert andet Excel VBA -relateret emne i kommentarfeltet herunder.

Download arbejdsfilen herunder:

Begivenhederne i Excel VBA |Der er syv typer begivenheder i Excel. Hver begivenhed handler i forskellige omfang. Application Event omhandler på projektmappeniveau. Arbejdsbog på arkniveau. Arbejdsarkbegivenhed på rækkevidde.

Regnearket Begivenheder i Excel VBA| Regnearkshændelsen er virkelig nyttig, når du vil have dine makroer kørt, når en bestemt hændelse forekommer på arket.

Arbejdsbogshændelser ved hjælp af VBA i Microsoft Excel | Arbejdsbogshændelserne fungerer på hele projektmappen. Da alle arkene er en del af projektmappen, fungerer disse begivenheder også på dem.

Forhindre, at en automacro/eventmacro udføres ved hjælp af VBA i Microsoft Excel| For at forhindre kørsel af auto_open -makroen skal du bruge shift -tasten.

Kortobjekthændelser ved hjælp af VBA i Microsoft Excel| Diagrammerne er komplekse objekter, og der er flere komponenter, du har knyttet dem til. For at lave diagramhændelserne bruger vi klasse -modulet.

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje gør dit arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke at filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.