Cum se creează evenimente la nivel de aplicație în Excel VBA

Evenimentele la nivel de aplicație funcționează pe întreaga aplicație (Excel în această referință). Dar activarea evenimentului aplicației nu este la fel de ușoară ca crearea unui registru de lucru sau a unor evenimente de foaie de lucru. Dar vă asigur că nu este atât de complicat. În acest articol, vom învăța cum să creați și să utilizați evenimentul aplicației în Excel VBA în câțiva pași simpli.

Pasul 1: Creați un obiect de eveniment într-un modul de clasă

Pentru a crea un obiect eveniment, trebuie să folosim modulul clasei.

  • Introduceți un modul de clasă. Denumiți-l după cum doriți. Am numit-o MyAppEvents.
  • Definiți o variabilă de eveniment de tip aplicație cu cuvântul cheie WithEvents.
    Privat WithEvents aplicația mea ca aplicație
  • Inițializați acest eveniment în subrutina class_initialize ().
    Din meniul derulant din stânga, selectați clasa. Apoi, în meniul derulant din dreapta sus, selectați inițializare.

    Private Sub Class_Initialize () Set myApp = Application End Sub
  • Acum definiți evenimentele pe care doriți să le utilizați. Din meniul derulant din stânga sus, selectați obiectul evenimentului. Toate procedurile disponibile de gestionare a evenimentelor vă vor fi disponibile în meniul drop-down din dreapta sus. Selectați ce doriți și definiți ce doriți să faceți atunci când evenimentul se declanșează.
    Folosesc Evenimentul SheetActivate. Ori de câte ori un utilizator va comuta între foile oricărui registru de lucru deschis, acesta va afișa numele registrului de lucru și pe care l-a selectat foaia de utilizator.

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

Aici puteți defini câte evenimente doriți să definiți.

Evenimentele nu vor începe să funcționeze imediat. Acesta a fost primul pas. Deoarece este un modul de clasă, trebuie să creăm un obiect al acestuia pentru a face activarea evenimentelor.

Acum trebuie să începem aceste evenimente doar dintr-un subrutină normală.

Pasul 2: Creați un subprogram de pornire a evenimentului în modul normal

Acum avem o clasă de evenimente. Trebuie doar să creăm un obiect din acea clasă și să-l inițializăm. Odată ce rulăm acest subrutină, toate evenimentele definite în clasa de evenimente vor începe să funcționeze.

  • Introduceți un modul normal.
  • Definiți o variabilă a clasei pe care ați creat-o.
    Aplicație privată ca evenimente MyApp
  • Inițializați-l într-un subrutină. Puteți să-l numiți după cum doriți.
    Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
  • Rulați acest cod folosind tasta F5. Opțional, puteți atribui această macro butonului din foaia de lucru dacă doriți să începeți evenimentele din foaia de lucru.

Și s-a făcut. Acum, ori de câte ori veți schimba foile, va apărea o casetă de mesaj cu numele registrului de lucru și a foii, atâta timp cât codul care conține registrul de lucru este deschis.

A fost greu? Nu cred. Spuneți-mi ce părere aveți în secțiunea de comentarii de mai jos.

Activarea și dezactivarea evenimentelor aplicației VBA

După ce rulați macrocomanda în modulul normal, aceasta se va declanșa întotdeauna până când închideți registrul de lucru care conține evenimentele. Dar este posibil să doriți ca aceștia să le aprindă și să le oprească după voia dvs. Există două modalități de a face acest lucru.

  • Anulați obiectul evenimentului
  • Setați EnableEvents la False

1. Anularea obiectului evenimentului

Într-un subrutină separat, setați obiectul evenimentului la Nimic

Private Sub StopEvents () Set AppE = Nothing End Sub

După ce rulați acest cod, evenimentele nu vor mai funcționa. O puteți pune într-un buton de pe foaia de lucru pentru a opri evenimentele. Acum veți avea două butoane pentru a începe și a opri aceste evenimente specifice. Va opri doar evenimentele create de obiectul AppE.

2. Setați EnableEvents la False

A doua metodă este dezactivarea evenimentelor. Pentru ca toate evenimentele să nu poată fi capturate, setăm proprietatea EnableEvents din clasa Application Fals.

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

Codul de mai sus va dezactiva toate evenimentele. Chiar și evenimentele Excel implicite. Nu vor funcționa până când nu le porniți din nou. Chiar dacă rulați subrutina StartEvents () (de mai sus), evenimentul nu va funcționa. Pentru ca toate evenimentele să funcționeze din nou, va trebui să setați proprietatea EnableEvents din nou la True.

Deci, dacă doriți ca evenimentele dvs. să funcționeze de fiecare dată când începeți evenimentele, adăugați această linie de cod în sub.

Private Sub StartEvents () Application.EnableEvents = True Set AppE = New MyAppEvents End Sub

Lansarea evenimentelor aplicației Custome de fiecare dată când se deschide registrul de lucru

Dacă dezvoltați un instrument pentru utilizatorul final, este posibil să doriți ca evenimentele să funcționeze automat. În acest caz, puteți pune starterul evenimentului în obiectul Workbook cu evenimentul Workbook_open (), în loc să fie într-un modul normal. Acest lucru va face obiectul evenimentului inițializat imediat ce deschideți registrul de lucru care conține evenimentele.

Deci, băieți, așa puteți folosi evenimentul aplicației în Excel. Spuneți-mi dacă acest lucru a fost suficient de explicativ și v-a ajutat să înțelegeți evenimentele la nivel de aplicație în Excel VBA în secțiunea de comentarii de mai jos. Dacă aveți ceva de adăugat, scrieți-l și pe acesta. Puteți întreba întrebările dvs. legate de acest articol sau orice alt subiect Excel VBA în secțiunea de comentarii de mai jos.

Descărcați fișierul de lucru de mai jos:

Evenimentele în Excel VBA | Există șapte tipuri de evenimente în Excel. Fiecare eveniment se ocupă în domenii diferite. Aplicația Eveniment se ocupă la nivel de registru de lucru. Caiet de lucru la nivel de foi. Foaie de lucru Eveniment la nivel Range.

Foaia de lucru Evenimente în Excel VBA| Evenimentul foii de lucru este foarte util atunci când doriți să ruleze macro-urile atunci când apare un eveniment specificat pe foaie.

Evenimente din registrul de lucru folosind VBA în Microsoft Excel | Evenimentele din registrul de lucru funcționează pe întregul registru de lucru. Deoarece toate foile fac parte din registrul de lucru, aceste evenimente funcționează și pe ele.

Preveniți executarea automacro / eventmacro utilizând VBA în Microsoft Excel| Pentru a preveni rularea macro-ului auto_open utilizați tasta Shift.

Diagrama evenimentelor obiectelor folosind VBA în Microsoft Excel| Diagramele sunt obiecte complexe și există mai multe componente pe care le-ați atașat la ele. Pentru realizarea evenimentelor grafice, folosim modulul Class.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face munca și mai rapidă pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu trebuie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave