Inbäddade diagramhändelser med hjälp av VBA i Excel

Att använda diagramarkhändelser (kalkylblad speciellt för diagram) är ganska enkelt. Men när det gäller att använda händelser på inbäddade diagram är det inte så enkelt. Men jag försäkrar dig att händelser med inbäddade diagram inte är så svåra att aktivera. Det är ungefär som att skapa applikationshändelser. Så utan ytterligare dröjsmål, låt oss komma igång.

Så det finns två steg för att aktivera en inbäddad diagramhändelse. Först är att skapa diagramhändelseklass och definiera händelser. För det andra är att skapa ett objekt för den händelseklassen. Det är allt.

Steg 1: Skapa diagramhändelseklass och definiera händelser

  • Sätt i en klassmodul. Namnge det som du vill. Jag gav den namnet ChartClass.
  • Definiera en händelsevariabel av diagramtyp med sökordet WithEvents.
    Privat med händelser CEhändelser som diagram
  • Initiera den här händelsen i subrutin class_initialize ().
    Välj klass på rullgardinsmenyn till vänster. Välj sedan initiera längst upp till höger.

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

    Här initierar vi CEvents -diagrammet med det första diagrammet som skapats på det bladet. 1 är indexnumret för diagramobjekt på det aktiva arket.

  • Definiera nu de händelser du vill använda. Välj CEvent-objektet längst upp till vänster. Alla tillgängliga händelsehanteringsprocedurer kommer att vara tillgängliga för dig i rullgardinsmenyn längst upp till höger. Välj det du behöver och definiera vad du vill göra när händelsen utlöses.
    För att demonstrera användningen väljer jag CEvents_Activate -händelsen. Jag ska försöka visa användaren att diagramhändelsen är aktiverad i en meddelandefält.

    Privat del CEvents_Activate () MsgBox "Diagrammet Händelser fungerar" Avsluta sub 

Vårt arbete här är klart. Du kan skapa så många händelser du vill från de tillgängliga händelserna för diagramtyp här. Men händelserna kommer inte att fungera ännu eftersom det bara är en klass. Vi måste skapa objektet för den här klassen i en del i en normal modul eller objektmodulen. Kör sedan den suben. Därefter börjar vårt event fungera.

Steg 2: Skapa diagramklassobjektet i modulen.

  • Sätt i en normal modul.
  • Deklarera en variabel av klassen du skapade tidigare.
    Dim mychart As ChartClass
  • Skapa en sub och initiera variabeln med objektet i klassen ChartClass.
    Sub activeChartEvent () Ställ in mychart = New ChartClass End Sub

  • Kör denna sub med F5. När du kör den här koden kommer diagramhändelser att vara aktiva för det första diagrammet på det för närvarande aktiva arket eftersom vi använde den här raden för att initiera diagramhändelsesset CEvents = ActiveSheet.ChartObjects (1) .Chart.

Och det är gjort. Om du nu klickar på det första diagrammet på det för närvarande aktiva arket kommer det att visa meddelandet att diagramhändelserna fungerar.

Slå på och av VBA -programhändelser

När du har kört makrot i den normala modulen utlöses det alltid tills du stänger arbetsboken som innehåller händelserna. Men du kanske vill slå på och av dem efter eget tycke. Det finns två sätt att göra detta.

  • Nullify Event Object
  • Ange EnableEvents till False

1. Nullifiera händelseobjektet

Ställ in händelseobjektet på ingenting i en separat underrutin

Private Sub StopEvents () Set Mychart = Nothing End Sub

När du har kört den här koden slutar händelserna att fungera. Du kan sätta den i en knapp på kalkylbladet för att stoppa händelserna. Nu kommer du att ha två knappar för att starta och stoppa dessa specifika händelser. Det kommer bara att stoppa händelser som skapats av AppE -objektet.

2. Ställ EnableEvents till False

Den andra metoden är att inaktivera händelserna. För att göra alla händelser oåtkomliga ställer vi in ​​egenskapen EnableEvents i applikationsklassen tillFalsk.

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

Ovanstående kod kommer att inaktivera alla händelser. Även standard excel -händelser. De fungerar inte förrän du startar dem igen. Även om du kör startrutinerna () underrutan (ovan) fungerar händelsen inte. För att alla händelser ska fungera igen måste du ställa in Egenskapen EnableEvents igen till True.

Så om du vill att dina händelser ska fungera varje gång du startar händelserna, lägg till den här kodraden i suben.

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

Starta Custome Chart -händelser varje gång arbetsbok öppnas

Om du utvecklar ett verktyg för slutanvändare kanske du vill att händelserna ska fungera automatiskt. I så fall kan du placera eventstartaren i Workbook -objektet med Workbook_open () -händelsen istället för i en vanlig modul. Detta kommer att göra ditt händelseobjekt initialiserat så snart du öppnar arbetsboken som innehåller händelserna.

Så ja killar, så här kan du använda den inbäddade diagramhändelsen i excel. Låt mig veta om detta var tillräckligt förklarande och hjälpte dig att förstå applikationsnivåhändelser i Excel VBA. Skriv ner dina tankar i kommentarfältet nedan. Om du har något att tillägga detta, skriv ner det också. Du kan ställa dina frågor relaterade till denna artikel eller något annat Excel -VBA -relaterat ämne i kommentarfältet nedan.

Ladda ner arbetsfilen nedan:

Händelserna i Excel VBA |Det finns sju typer av händelser i Excel. Varje evenemang handlar i olika omfattning. Application Event behandlar på arbetsboknivå. Arbetsbok på arknivå. Arbetsbladshändelse på intervallnivå.

Arbetsbladshändelser i Excel VBA| Arbetsbladshändelsen är verkligen användbar när du vill att dina makron ska köras när en viss händelse inträffar på arket.

Arbetsbokshändelser med VBA i Microsoft Excel | Arbetsbokhändelserna fungerar på hela arbetsboken. Eftersom alla blad är en del av arbetsboken fungerar dessa händelser också på dem.

Förhindra att en automacro/eventmacro körs med VBA i Microsoft Excel| För att förhindra körning av auto_open -makro, använd shift -tangenten.

Kartlägg objekthändelser med VBA i Microsoft Excel| Diagrammen är komplexa objekt och det finns flera komponenter som du bifogade dem. För att göra diagramhändelserna använder vi klassmodulen.

Populära artiklar:

50 Excel -genvägar för att öka din produktivitet | Bli snabbare på din uppgift. Dessa 50 genvägar gör ditt arbete ännu snabbare i Excel.

VLOOKUP -funktionen i Excel | Detta är en av de mest använda och populära Excel -funktionerna som används för att leta upp värde från olika intervall och ark.

COUNTIF i Excel 2016 | Räkna värden med förhållanden med denna fantastiska funktion. Du behöver inte filtrera dina data för att räkna specifikt värde. Countif -funktionen är avgörande för att förbereda din instrumentpanel.

Hur man använder SUMIF -funktionen i Excel | Detta är en annan viktig instrumentpanel. Detta hjälper dig att summera värden på specifika förhållanden.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave