Ενσωματωμένα συμβάντα γραφήματος χρησιμοποιώντας VBA στο Excel

Η χρήση συμβάντων φύλλων γραφημάτων (φύλλο εργασίας ειδικά για γραφήματα) είναι αρκετά απλή. Αλλά όταν πρόκειται για τη χρήση γεγονότων σε ενσωματωμένα γραφήματα, δεν είναι τόσο απλό. Σας διαβεβαιώνω όμως ότι τα γεγονότα με ενσωματωμένα γραφήματα δεν είναι τόσο δύσκολο να ενεργοποιηθούν. Είναι σαν να δημιουργείτε συμβάντα εφαρμογών. Έτσι, χωρίς περαιτέρω καθυστέρηση, ας ξεκινήσουμε.

Έτσι, υπάρχουν δύο βήματα για να ενεργοποιήσετε ένα συμβάν ενσωματωμένου γραφήματος. Πρώτα είναι η δημιουργία κλάσης συμβάντων γραφήματος και ο καθορισμός συμβάντων. Το δεύτερο είναι η δημιουργία ενός αντικειμένου αυτής της κλάσης συμβάντων. Αυτό είναι.

Βήμα 1: Δημιουργία τάξης συμβάντων γραφήματος και καθορισμός συμβάντων

  • Εισαγάγετε μια ενότητα κλάσης. Ονομάστε το όπως θέλετε. Το ονόμασα ChartClass.
  • Ορίστε μια μεταβλητή συμβάντων τύπου γραφήματος με λέξη -κλειδί WithEvents.
    Private WithEvents CEvents As Chart
  • Αρχικοποιήστε αυτό το συμβάν σε υπορουτίνα class_initialize ().
    Από το αναπτυσσόμενο μενού στα αριστερά, επιλέξτε κλάση. Στη συνέχεια, στο αναπτυσσόμενο μενού επάνω δεξιά, επιλέξτε προετοιμασία.

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

    Εδώ ξεκινάμε το γράφημα CEvents με το πρώτο γράφημα που δημιουργήθηκε σε αυτό το φύλλο. Το 1 είναι ο αριθμός ευρετηρίου των αντικειμένων γραφήματος στο ενεργό φύλλο.

  • Τώρα ορίστε τα συμβάντα που θέλετε να χρησιμοποιήσετε. Από το αναπτυσσόμενο μενού επάνω αριστερά, επιλέξτε το αντικείμενο CEvent. Όλες οι διαθέσιμες διαδικασίες χειρισμού συμβάντων θα είναι διαθέσιμες στο αναπτυσσόμενο μενού πάνω δεξιά. Επιλέξτε όποιο θέλετε και ορίστε τι θέλετε να κάνετε όταν ενεργοποιηθεί αυτό το συμβάν.
    Για να δείξω τη χρήση, επιλέγω το CEvents_Activate Event. Θα προσπαθήσω να δείξω στο χρήστη ότι το συμβάν γραφήματος είναι ενεργοποιημένο σε ένα πλαίσιο msg.

    Private Sub CEvents_Activate () MsgBox "The chart Events are working" End Sub 

Η δουλειά μας εδώ έχει ολοκληρωθεί. Μπορείτε να δημιουργήσετε όσα συμβάντα θέλετε από τα διαθέσιμα συμβάντα για τον τύπο γραφήματος εδώ. Αλλά τα γεγονότα δεν θα λειτουργήσουν ακόμη, επειδή είναι απλώς ένα μάθημα. Πρέπει να δημιουργήσουμε το αντικείμενο αυτής της κλάσης σε ένα δευτερεύον σε οποιαδήποτε κανονική ενότητα ή τη λειτουργική μονάδα αντικειμένου. Στη συνέχεια, εκτελέστε αυτό το sub. Μετά από αυτό, η εκδήλωσή μας θα ξεκινήσει να λειτουργεί.

Βήμα 2: Δημιουργήστε το αντικείμενο κλάσης γραφήματος στην ενότητα.

  • Τοποθετήστε μια κανονική μονάδα.
  • Δηλώστε μια μεταβλητή της κλάσης που δημιουργήσατε πριν.
    Dim mychart As ChartClass
  • Δημιουργήστε ένα δευτερεύον και αρχικοποιήστε τη μεταβλητή με το αντικείμενο της κλάσης ChartClass.
    Sub activChartEvent () Set mychart = New ChartClass End Sub

  • Εκτελέστε αυτό το sub χρησιμοποιώντας F5. Καθώς θα εκτελέσετε αυτόν τον κώδικα, τα συμβάντα γραφήματος θα είναι ενεργά για το πρώτο γράφημα στο τρέχον ενεργό φύλλο, καθώς χρησιμοποιήσαμε αυτήν τη γραμμή για την προετοιμασία του συνόλου συμβάντων γραφήματος CEvents = ActiveSheet.ChartObjects (1). Γράφημα

Και γίνεται. Τώρα, αν κάνετε κλικ στο πρώτο γράφημα στο τρέχον ενεργό φύλλο, θα εμφανιστεί το μήνυμα ότι τα συμβάντα γραφήματος λειτουργούν.

Ενεργοποίηση και απενεργοποίηση συμβάντων εφαρμογής VBA

Μόλις εκτελέσετε τη μακροεντολή στην κανονική λειτουργική μονάδα, θα ενεργοποιείται πάντα μέχρι να κλείσετε το βιβλίο εργασίας που περιέχει τα συμβάντα. Αλλά μπορεί να θέλετε να τα ενεργοποιήσετε και να τα απενεργοποιήσετε κατά βούληση. Υπάρχουν δύο τρόποι για να γίνει αυτό.

  • Ακυρώστε το αντικείμενο συμβάντος
  • Ορίστε το EnableEvents σε False

1. Ακύρωση του αντικειμένου συμβάντος

Σε ξεχωριστή υπορουτίνα, ορίστε το αντικείμενο συμβάντος σε τίποτα

Private Sub StopEvents () Set Mychart = Nothing End Sub

Μόλις εκτελέσετε αυτόν τον κώδικα, τα συμβάντα θα σταματήσουν να λειτουργούν. Μπορείτε να το βάλετε σε ένα κουμπί στο φύλλο εργασίας για να σταματήσετε τα συμβάντα. Τώρα θα έχετε δύο κουμπιά για να ξεκινήσετε και να σταματήσετε αυτά τα συγκεκριμένα συμβάντα. Απλώς θα σταματήσει τα συμβάντα που δημιουργήθηκαν από το αντικείμενο AppE.

2. Ορίστε το EnableEvents σε False

Η δεύτερη μέθοδος είναι να απενεργοποιήσετε τα συμβάντα. Για να κάνουμε όλες τις εκδηλώσεις ασύμβατες, ορίζουμε την ιδιότητα EnableEvents της κλάσης Application σεΨευδής.

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

Ο παραπάνω κώδικας θα απενεργοποιήσει όλα τα συμβάντα. Ακόμα και τα προεπιλεγμένα συμβάντα excel. Δεν θα λειτουργήσουν μέχρι να τα ξεκινήσετε ξανά. Ακόμα κι αν εκτελέσετε την υπορουτίνα StartEvents () (παραπάνω), το συμβάν δεν θα λειτουργήσει. Για να λειτουργήσουν ξανά όλα τα συμβάντα, θα πρέπει να ορίσετε ξανά την ιδιότητα EnableEvents σε True.

Έτσι, εάν θέλετε οι εκδηλώσεις σας να λειτουργούν κάθε φορά που ξεκινάτε τα συμβάντα, προσθέστε αυτήν τη γραμμή κώδικα στο δευτερεύον.

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

Έναρξη Εκδηλώσεων Διάγραμμα Customome κάθε φορά που ανοίγει το Τετράδιο Εργασίας

Εάν αναπτύσσετε ένα εργαλείο για τον τελικό χρήστη, μπορεί να θέλετε τα γεγονότα να λειτουργούν αυτόματα. Σε αυτήν την περίπτωση, μπορείτε να βάλετε την εκκίνηση συμβάντος στο αντικείμενο του βιβλίου εργασίας με συμβάν Workbook_open (), αντί για μια κανονική λειτουργική μονάδα. Αυτό θα κάνει το αντικείμενο της εκδήλωσής σας να προετοιμαστεί μόλις ανοίξετε το βιβλίο εργασίας που περιέχει τα συμβάντα.

Λοιπόν, ναι, έτσι μπορείτε να χρησιμοποιήσετε την εκδήλωση ενσωματωμένου γραφήματος στο excel. Ενημερώστε με αν αυτό ήταν αρκετά επεξηγηματικό και σας βοήθησε να κατανοήσετε Συμβάντα επιπέδου εφαρμογής στο Excel VBA. Γράψτε τις σκέψεις σας στην παρακάτω ενότητα σχολίων. Αν έχετε κάτι να προσθέσετε σε αυτό, γράψτε το και αυτό. Μπορείτε να ρωτήσετε τα ερωτήματά σας σχετικά με αυτό το άρθρο ή οποιοδήποτε άλλο θέμα που σχετίζεται με το Excel VBA στην παρακάτω ενότητα σχολίων.

Κατεβάστε το αρχείο εργασίας παρακάτω:

Οι εκδηλώσεις στο Excel VBA |Υπάρχουν επτά τύποι συμβάντων στο Excel. Κάθε εκδήλωση ασχολείται με διαφορετικό πεδίο. Το Application Event ασχολείται σε επίπεδο βιβλίου εργασίας. Τετράδιο εργασίας σε επίπεδο φύλλων. Εκδήλωση φύλλου εργασίας σε επίπεδο εμβέλειας.

Οι εκδηλώσεις φύλλου εργασίας στο Excel VBA| Το συμβάν φύλλου εργασίας είναι πραγματικά χρήσιμο όταν θέλετε οι μακροεντολές σας να εκτελούνται όταν εμφανίζεται ένα συγκεκριμένο συμβάν στο φύλλο.

Εκδηλώσεις βιβλίου εργασίας χρησιμοποιώντας VBA στο Microsoft Excel | Οι εκδηλώσεις του βιβλίου εργασίας λειτουργούν σε ολόκληρο το βιβλίο εργασίας. Δεδομένου ότι όλα τα φύλλα είναι μέρος του βιβλίου εργασίας, αυτά τα γεγονότα λειτουργούν και σε αυτά.

Αποτρέψτε την εκτέλεση automacro/eventmacro χρησιμοποιώντας VBA στο Microsoft Excel| Για να αποτρέψετε την εκτέλεση της μακροεντολής auto_open χρησιμοποιήστε το πλήκτρο shift.

Συμβάντα αντικειμένου γραφήματος χρησιμοποιώντας VBA στο Microsoft Excel| Τα διαγράμματα είναι πολύπλοκα αντικείμενα και υπάρχουν πολλά στοιχεία που τα έχετε προσαρτήσει. Για να φτιάξουμε τα Chart Events χρησιμοποιούμε την ενότητα Class.

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα κάνουν τη δουλειά σας ακόμη πιο γρήγορη στο Excel.

Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.

COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave