Ako vytvárať udalosti na úrovni aplikácie v programe Excel VBA

Obsah:

Anonim

Udalosti na úrovni aplikácie fungujú na celej aplikácii (Excel v tomto odkaze). Aktivácia udalosti aplikácie však nie je taká jednoduchá ako vytváranie udalostí zošita alebo pracovného hárka. Uisťujem vás však, že to nie je také zložité. V tomto článku sa naučíme, ako vytvoriť a používať udalosť aplikácie v programe Excel VBA v niekoľkých jednoduchých krokoch.

Krok 1: Vytvorte objekt udalosti v module triedy

Na vytvorenie objektu udalosti musíme použiť modul triedy.

  • Vložte modul triedy. Pomenujte to ako chcete. Pomenoval som to MyAppEvents.
  • Definujte premennú udalosti typu aplikácie pomocou kľúčového slova WithEvents.
    Súkromná aplikácia WithEvents myApp ako aplikácia
  • Inicializujte túto udalosť v podprograme class_initialize ().
    V rozbaľovacej ponuke vľavo vyberte triedu. Potom v rozbaľovacej ponuke vpravo hore vyberte položku inicializovať.

    Private Sub Class_Initialize () Set myApp = Sub End Application
  • Teraz definujte udalosti, ktoré chcete použiť. V rozbaľovacej ponuke vľavo hore vyberte objekt udalosti. Všetky dostupné postupy spracovania udalostí vám budú k dispozícii v rozbaľovacej ponuke vpravo hore. Vyberte si, čo požadujete, a definujte, čo chcete robiť, keď sa spustí táto udalosť.
    Používam udalosť SheetActivate. Kedykoľvek používateľ prepne medzi hárkami akéhokoľvek otvoreného zošita, zobrazí sa mu názov zošita a vybratý používateľ hárka.

    Súkromná podstránka myApp_SheetActivate (objekt ByVal Sh As) MsgBox ActiveWorkbook.Name & "-" & Sh.Name End Sub 

Tu môžete definovať počet udalostí, ktoré chcete definovať.

Udalosti nezačnú fungovať okamžite. Toto bol prvý krok. Pretože ide o modul triedy, musíme vytvoriť jeho objekt, aby sa udalosti aktivovali.

Teraz musíme iba začať tieto udalosti z normálneho podprogramu.

Krok 2: Vytvorte podprogram začiatočníka udalostí v normálnom module

Teraz máme triedu udalostí. Potrebujeme len vytvoriť objekt tejto triedy a inicializovať ho. Akonáhle spustíme tento podprogram, všetky definované udalosti v triede udalostí začnú fungovať.

  • Vložte normálny modul.
  • Definujte premennú triedy, ktorú ste vytvorili.
    Súkromná aplikácia AppE ako MyAppEvents
  • Inicializujte ho v podprograme. Môžete to pomenovať ako chcete.
    Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
  • Tento kód spustite pomocou klávesu F5. Voliteľne môžete toto makro priradiť k tlačidlu na pracovnom hárku, ak chcete začať udalosti z pracovného hárka.

A je hotovo. Teraz, keď prepnete hárky, zobrazí sa okno so správou s názvom zošita a listu, pokiaľ je otvorený zošit obsahujúci kód.

Bolo to tazke? Myslím, že nie. Dajte mi vedieť, čo si myslíte, v sekcii komentárov nižšie.

Zapínanie a vypínanie udalostí aplikácií VBA

Keď makro spustíte v normálnom module, spustí sa vždy, kým nezavriete zošit, ktorý obsahuje udalosti. Ale možno budete chcieť, aby ich zapínali a vypínali podľa vašej vôle. Existujú dva spôsoby, ako to urobiť.

  • Zrušte označenie objektu udalosti
  • Nastavte EnableEvents na False

1. Zrušenie objektu udalosti

V samostatnom podprograme nastavte objekt udalosti na Nič

Private Sub StopEvents () Set AppE = Nothing End Sub

Akonáhle spustíte tento kód, udalosti prestanú fungovať. Udalosti môžete zastaviť tak, že ich umiestnite do tlačidla na pracovnom hárku. Teraz budete mať dve tlačidlá na spustenie a zastavenie týchto konkrétnych udalostí. Jednoducho zastaví udalosti vytvorené objektom AppE.

2. Nastavte položku EnableEvents na hodnotu False

Druhou metódou je vypnutie udalostí. Aby boli všetky udalosti nechytateľné, nastavili sme vlastnosť EnableEvents triedy Application na Falošné.

Private Sub StopEvents () Application.EnableEvents = Falošný koniec Sub

Vyššie uvedený kód zakáže všetky udalosti. Dokonca aj predvolené akcie programu Excel. Nebudú fungovať, kým ich znova nespustíte. Aj keď spustíte podprogram StartEvents () (vyššie), udalosť nebude fungovať. Aby všetky akcie opäť fungovali, budete musieť znova nastaviť vlastnosť EnableEvents na True.

Ak teda chcete, aby vaše akcie fungovali pri každom spustení udalostí, pridajte tento riadok kódu do podsekcie.

Aplikácia Private Sub StartEvents () Application.EnableEvents = True Set AppE = Nový MyAppEvents End Sub

Spustenie užitočných udalostí aplikácií vždy, keď sa zošit otvorí

Ak vyvíjate nástroj pre koncových používateľov, možno budete chcieť, aby udalosti pracovali automaticky. V takom prípade môžete miesto štartéra udalostí vložiť do objektu zošit s udalosťou Workbook_open (), nie do normálneho modulu. Vďaka tomu sa váš objekt udalosti inicializuje hneď, ako otvoríte zošit, ktorý obsahuje udalosti.

Takže áno, chlapci, takto môžete použiť udalosť aplikácie v programe Excel. Dajte mi vedieť, či to bolo dostatočne vysvetľujúce a pomohlo vám to porozumieť udalostiam na úrovni aplikácie v programe Excel VBA v nižšie uvedenej sekcii komentárov. Ak k tomu chcete niečo dodať, napíšte to tiež. Svoje otázky týkajúce sa tohto článku alebo akejkoľvek inej témy súvisiacej s programom VBA programu Excel môžete položiť v sekcii komentárov nižšie.

Stiahnite si pracovný súbor nižšie:

Udalosti v programe Excel VBA | V programe Excel je sedem typov udalostí. Každá udalosť má iný rozsah. Udalosť aplikácie sa zaoberá na úrovni zošita. Pracovný zošit na úrovni listov. Pracovný list Udalosť na úrovni rozsahu.

Udalosti pracovného hárka v programe Excel VBA| Udalosť pracovného hárka je skutočne užitočná, keď chcete, aby sa vaše makrá spustili, keď sa v hárku vyskytne zadaná udalosť.

Udalosti zošita pomocou jazyka VBA v programe Microsoft Excel | Udalosti zošita fungujú na celom zošite. Keďže všetky listy sú súčasťou pracovného zošita, tieto udalosti na nich tiež fungujú.

Zabráňte spusteniu programu automacro/eventmacro pomocou programu VBA v programe Microsoft Excel| Ak chcete zabrániť spusteniu makra auto_open, použite kláves Shift.

Graf udalostí objektu pomocou VBA v programe Microsoft Excel| Grafy sú komplexné objekty a je k nim pripojených niekoľko komponentov. Na vytváranie grafových udalostí používame modul Trieda.

Populárne články:

50 skratiek programu Excel na zvýšenie produktivity | Vykonajte svoju úlohu rýchlejšie. Týchto 50 skratiek vám v Exceli prácu ešte zrýchli.

Funkcia VLOOKUP v programe Excel | Toto je jedna z najpoužívanejších a najobľúbenejších funkcií programu Excel, ktorá sa používa na vyhľadávanie hodnôt z rôznych rozsahov a hárkov.

COUNTIF v Exceli 2016 | Počítajte hodnoty s podmienkami pomocou tejto úžasnej funkcie. Na počítanie konkrétnej hodnoty nie je potrebné filtrovať údaje. Funkcia Countif je potrebná na prípravu palubnej dosky.

Ako používať funkciu SUMIF v programe Excel | Toto je ďalšia zásadná funkcia palubnej dosky. To vám pomôže zhrnúť hodnoty za konkrétnych podmienok.