Kako stvoriti događaje na razini aplikacije u Excelu VBA

Sadržaj:

Anonim

Događaji na razini aplikacije rade na cijeloj aplikaciji (Excel u ovoj referenci). No aktiviranje događaja aplikacije nije tako jednostavno kao stvaranje događaja radne knjige ili radnog lista. Ali uvjeravam vas da ni to nije tako zeznuto. U ovom ćemo članku naučiti kako stvoriti i koristiti aplikacijski događaj u Excelu VBA u nekoliko jednostavnih koraka.

Korak 1: Stvorite objekt događaja u modulu klase

Da bismo stvorili objekt događaja, moramo koristiti modul klase.

  • Umetnite modul klase. Imenujte ga kako želite. Nazvao sam ga MyAppEvents.
  • Definirajte varijablu događaja vrste aplikacije s ključnom riječi WithEvents.
    Privatno WithEvents myApp kao aplikacija
  • Inicijalizirajte ovaj događaj u potprogramu class_initialize ().
    Na padajućem izborniku slijeva odaberite klasu. Nakon toga, u padajućem izborniku u gornjem desnom kutu odaberite inicijalizacija.

    Privatna podrazreda_Initialize () Postavi myApp = Podvrsta završetka aplikacije
  • Sada definirajte događaje koje želite koristiti. S padajućeg izbornika gore lijevo odaberite objekt događaja. Svi dostupni postupci za upravljanje događajima bit će vam dostupni u gornjem desnom padajućem izborniku. Odaberite što god želite i definirajte što želite učiniti kada se taj događaj pokrene.
    Koristim događaj SheetActivate. Kad god se korisnik prebacuje između listova bilo koje otvorene radne knjige, prikazat će se naziv radne knjige i korisnik lista koji je odabrao.

    Privatna podmena myApp_SheetActivate (ByVal Sh As Object) MsgBox ActiveWorkbook.Name & "-" & Sh.Name End Sub 

Ovdje možete definirati onoliko događaja koje želite definirati.

Događaji neće odmah početi s radom. Ovo je bio prvi korak. Budući da se radi o modulu klase, moramo stvoriti njegov objekt kako bismo aktivirali događaje.

Sada samo trebamo pokrenuti te događaje iz normalne podrutine.

Korak 2: Izradite potprogram pokretača događaja u normalnom modulu

Sada imamo klasu događaja. Trebamo samo stvoriti objekt te klase i inicijalizirati ga. Nakon što pokrenemo ovu potprogram, svi definirani događaji u klasi događaja počet će raditi.

  • Umetnite normalan modul.
  • Definirajte varijablu klase koju ste stvorili.
    Privatni AppE kao MyAppEvents
  • Inicijalizirajte ga u potprogramu. Možete mu dati ime kako želite.
    Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
  • Pokrenite ovaj kod pomoću tipke F5. Po želji, ovu makronaredbu možete dodijeliti gumbu na radnom listu ako želite započeti događaje s radnog lista.

I to je učinjeno. Sada kad god promijenite listove, pojavit će se okvir s imenom s radnom knjigom i listom, sve dok je kôd koji sadrži radnu knjigu otvoren.

Je li bilo teško? Mislim da nije. Recite mi što mislite u odjeljku komentara ispod.

Uključivanje i isključivanje događaja VBA aplikacije

Nakon što pokrenete makro u normalnom modulu, on će se uvijek pokretati sve dok ne zatvorite radnu knjigu koja sadrži događaje. No možda ćete htjeti da ih po vašoj volji uključuju i isključuju. Postoje dva načina za to.

  • Poništite objekt događaja
  • Postavite EnableEvents na Netačno

1. poništavanje objekta događaja

U zasebnoj potprogrami postavite objekt događaja na Ništa

Private Sub StopEvents () Set AppE = Ništa Kraj Sub

Nakon što pokrenete ovaj kôd, događaji će prestati funkcionirati. Možete ga staviti u gumb na radnom listu da biste zaustavili događaje. Sada ćete imati dva gumba za pokretanje i zaustavljanje ovih posebnih događaja. Samo će zaustaviti događaje koje je stvorio objekt AppE.

2. Postavite EnableEvents na False

Druga metoda je onemogućavanje događaja. Kako bismo sve događaje učinili neprihvatljivima, svojstvo EnableEvents klase Application postavili smo na Netočno.

Private Sub StopEvents () Application.EnableEvents = Subsekcija lažnog kraja

Gornji kôd onemogućit će sve događaje. Čak i zadani excel događaji. Neće raditi dok ih ponovno ne pokrenete. Čak i ako pokrenete potprogram StartEvents () (gore), događaj neće raditi. Da bi svi događaji ponovno funkcionirali, morat ćete ponovo postaviti svojstvo EnableEvents na True.

Dakle, ako želite da vaši događaji funkcioniraju svaki put kada započnete događaje, dodajte ovaj redak koda u podnaslov.

Privatni pod StartEvents () Application.EnableEvents = True Set AppE = Novi MyAppEvents End Sub

Pokretanje događaja korisničke aplikacije svaki put kada se otvara radna knjiga

Ako razvijate alat za krajnjeg korisnika, možda biste htjeli da događaji rade automatski. U tom slučaju možete staviti pokretač događaja u objekt Radna knjiga s događajem Workbook_open (), umjesto u uobičajeni modul. Time će vaš objekt događaja biti inicijaliziran čim otvorite radnu knjigu koja sadrži događaje.

Pa da, dečki, ovako možete koristiti aplikacijski događaj u Excelu. Javite mi je li ovo dovoljno objašnjenje i pomoglo vam da razumijete događaje na razini aplikacije u Excelu VBA u odjeljku komentara u nastavku. Ako ovome imate što dodati, napišite i to. Možete postaviti svoje upite vezane uz ovaj članak ili bilo koju drugu temu vezanu uz Excel VBA u donjem odjeljku komentara.

U nastavku preuzmite radnu datoteku:

Događaji u Excelu VBA | U Excelu postoji sedam vrsta događaja. Svaki događaj se bavi različitim opsegom. Događaj o prijavi bavi se na razini radne knjige. Radna bilježnica na razini listova. Događaj radnog lista na razini raspona.

Događaji na radnom listu u Excelu VBA| Događaj radnog lista zaista je koristan kada želite da se vaše makronaredbe izvode kada se na listu pojavi određeni događaj.

Događaji radne knjige koristeći VBA u programu Microsoft Excel | Događaji u radnoj knjizi rade na cijeloj radnoj knjizi. Budući da su svi listovi dio radne bilježnice, ovi događaji djeluju i na njih.

Spriječite automatsko pokretanje/makro događaja pomoću VBA u programu Microsoft Excel| Da biste spriječili pokretanje makronaredbe auto_open, koristite tipku shift.

Zabilježite događaje objekta pomoću VBA u programu Microsoft Excel| Grafikoni su složeni objekti i postoji nekoliko komponenti koje ste im pridružili. Za izradu Chart Events -a koristimo Class modul.

Popularni članci:

50 Excel prečaca za povećanje vaše produktivnosti | Budite brži u izvršavanju svojih zadataka. Ovih 50 prečaca učinit će vaš rad još bržim u Excelu.

Funkcija VLOOKUP u Excelu | Ovo je jedna od najčešće korištenih i popularnih funkcija programa Excel koja se koristi za traženje vrijednosti iz različitih raspona i listova.

COUNTIF u Excelu 2016 | Brojte vrijednosti s uvjetima pomoću ove nevjerojatne funkcije. Ne morate filtrirati svoje podatke da biste računali određenu vrijednost. Funkcija Countif bitna je za pripremu vaše nadzorne ploče.

Kako koristiti funkciju SUMIF u Excelu | Ovo je još jedna bitna funkcija nadzorne ploče. To vam pomaže pri zbrajanju vrijednosti u posebnim uvjetima.