Jak vytvářet události na úrovni aplikace v aplikaci Excel VBA

Obsah:

Anonim

Události na úrovni aplikace fungují na celou aplikaci (Excel v tomto odkazu). Aktivace události aplikace ale není tak jednoduchá jako vytváření událostí sešitů nebo pracovních listů. Ale ujišťuji vás, že to také není tak složité. V tomto článku se naučíme, jak vytvořit a používat událost aplikace v aplikaci Excel VBA v několika jednoduchých krocích.

Krok 1: Vytvořte objekt události v modulu třídy

K vytvoření objektu události musíme použít modul třídy.

  • Vložte modul třídy. Pojmenujte to, jak chcete. Pojmenoval jsem to MyAppEvents.
  • Definujte proměnnou události typu aplikace pomocí klíčového slova WithEvents.
    Private WithEvents myApp jako aplikace
  • Inicializujte tuto událost v podprogramu class_initialize ().
    V rozevíracím seznamu vlevo vyberte třídu. Poté v rozevíracím seznamu vpravo nahoře vyberte inicializovat.

    Private Sub Class_Initialize () Nastavit myApp = Sub End Sub
  • Nyní definujte události, které chcete použít. V rozevíracím seznamu vlevo nahoře vyberte objekt události. Všechny dostupné postupy zpracování událostí vám budou k dispozici v rozbalovací nabídce vpravo nahoře. Vyberte, co požadujete, a definujte, co chcete dělat, když se událost spustí.
    Používám událost SheetActivate. Kdykoli uživatel přepne mezi listy jakéhokoli otevřeného sešitu, zobrazí se název sešitu a uživatel listu, který si vybral.

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

Zde můžete definovat tolik událostí, které chcete definovat.

Události nezačnou fungovat okamžitě. To byl první krok. Protože se jedná o modul třídy, musíme z něj vytvořit objekt, aby se události aktivovaly.

Nyní stačí spustit tyto události z normálního podprogramu.

Krok 2: Vytvořte podprogram pro zahájení událostí v normálním modulu

Nyní máme třídu událostí. Stačí vytvořit objekt této třídy a inicializovat ho. Jakmile spustíme tento podprogram, všechny definované události ve třídě událostí začnou fungovat.

  • Vložte normální modul.
  • Definujte proměnnou třídy, kterou jste vytvořili.
    Soukromé AppE jako MyAppEvents
  • Inicializujte jej v podprogramu. Můžete to pojmenovat, jak chcete.
    Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
  • Spusťte tento kód pomocí klávesy F5. Volitelně můžete toto makro přiřadit tlačítku na listu, pokud chcete spustit události z listu.

A je hotovo. Nyní, kdykoli přepnete listy, se zobrazí okno se zprávou s názvem sešitu a listu, pokud je sešit obsahující kód.

Bylo to těžké? To si nemyslím. Dejte mi vědět, co si myslíte, v sekci komentáře níže.

Zapnutí a vypnutí událostí aplikace VBA

Jakmile spustíte makro v normálním modulu, spustí se vždy, dokud nezavřete sešit, který obsahuje události. Ale možná budete chtít, aby je zapínali a vypínali podle vaší vůle. To lze provést dvěma způsoby.

  • Zrušit objekt události
  • Nastavte EnableEvents na False

1. Zrušení objektu události

V samostatném podprogramu nastavte objekt události na Nic

Private Sub StopEvents () Set AppE = Nothing End Sub

Jakmile spustíte tento kód, události přestanou fungovat. Události můžete zastavit stisknutím tlačítka na listu. Nyní budete mít dvě tlačítka ke spuštění a zastavení těchto konkrétních událostí. Prostě zastaví události vytvořené objektem AppE.

2. Nastavte EnableEvents na False

Druhá metoda je zakázat události. Aby byly všechny události nechytatelné, nastavíme vlastnost EnableEvents třídy Application na Nepravdivé.

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

Výše uvedený kód zakáže všechny události. Dokonce i výchozí události aplikace Excel. Nebudou fungovat, dokud je znovu nespustíte. I když spustíte podprogram StartEvents () (výše), událost nebude fungovat. Aby všechny události opět fungovaly, budete muset vlastnost EnableEvents znovu nastavit na True.

Pokud tedy chcete, aby vaše události fungovaly při každém spuštění událostí, přidejte tento řádek kódu do dílčího programu.

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

Spouštění akcí vlastních aplikací při každém otevření sešitu

Pokud vyvíjíte nástroj pro koncové uživatele, můžete chtít, aby události fungovaly automaticky. V takovém případě můžete umístit spouštěč událostí do objektu sešitu s událostí Workbook_open () namísto do normálního modulu. Díky tomu bude váš objekt události inicializován, jakmile otevřete sešit, který obsahuje události.

Takže jo, lidi, takto můžete použít událost aplikace v aplikaci Excel. Dejte mi vědět, jestli to bylo dostatečně vysvětlující a pomohlo vám to pochopit události na úrovni aplikace v aplikaci Excel VBA v sekci komentáře níže. Pokud k tomu chcete něco dodat, napište to také. Můžete se zeptat na vaše dotazy týkající se tohoto článku nebo jiného tématu souvisejícího s excelem VBA v sekci komentáře níže.

Stáhněte si pracovní soubor níže:

Události v aplikaci Excel VBA | V aplikaci Excel je sedm typů událostí. Každá událost se zabývá jiným rozsahem. Událost aplikace se zabývá na úrovni sešitu. Sešit na úrovni listů. Pracovní list Událost na úrovni rozsahu.

Události listu v aplikaci Excel VBAZpět nahoru Dejte nám zpětnou vazbu Řešení Událost listu je opravdu užitečná, když chcete, aby se vaše makra spustila, když na listu dojde k zadané události.

Události sešitu pomocí VBA v Microsoft Excelu | Události sešitu fungují na celém sešitu. Protože jsou všechny listy součástí sešitu, fungují na nich i tyto události.

Zabraňte spuštění automacro/eventmacro pomocí VBA v Microsoft Excelu| Chcete -li zabránit spuštění makra auto_open, použijte klávesu shift.

Události objektů grafu pomocí VBA v aplikaci Microsoft Excel| Grafy jsou složité objekty a je k nim připojeno několik komponent. K vytváření Chart Events používáme modul Class.

Oblíbené články:

50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 zkratek vám v Excelu práci ještě zrychlí.

Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.

COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétní hodnoty není nutné filtrovat data. Funkce Countif je nezbytná pro přípravu řídicího panelu.

Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.