Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba » excel-vba-udalosti-uvod

VBA Excel: Události obecný úvod

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

seznam události a k čemu je lze využít

Objekty v Excelu

Objekty v MS Excelu reagují na mnoho událostí. Seznam událostí je závislý na druhu objektu. V Excelu jsou k dispozici tyto objekty:

  • Aplikace: Události celé aplikace probíhají na úrovni Excelu (např.: NewWorkBook atd.). Aby nám správně fungovaly musí být k dispozici modul třídy
  • Sešit: Události, probíhají v rámci sešitu (např.: Open, BeforeOpen atd.)
  • List: Jsou události které přísluší konkrétnímu listu (např.: Activate, Calculate atd.)
  • Graf: Události grafu se týkají grafu (ať už je graf jako samostatný list, nebo je součásti listu). (např.: Resize atd.)
  • Formuláře: Události formulářu a jejich ovládacích prvků. Je jasné, že pro správnou funkcí musí být k dispozici patřičný formulář.
  • Speciální:Události (např: OnWindow, OnTime, OnKey atd.).

Události Aplikace MS EXCEL

Seznam události celé aplikace včetně jednoduchého popisu:

  • NewWorkbook - Vytvoření nového sešitu
  • SheetActivate - Aktivace požadovaného listu
  • SheetBeforeDoubleClick
  • SheetBeforeRightClick - před klikem pravého tlačítka
  • SheetCalculate
  • SheetChange
  • SheetDeactivate
  • SheetFollowHyperlink
  • SheetSelectionChange
  • WindowActivate
  • WindowDeactivate
  • WindowResize
  • WorkbookActivate
  • WorkbookAddinlnstall - Instalace sešitu jako doplňku
  • WorkbookAddinUninstall - Odinstalace zvoleného doplňku
  • WorkbookBeforeClose - před uzavřením
  • WorkbookBeforePrint - před tiskem
  • WorkbookBeforeSave - před uložením
  • WorkbookOeactivate
  • WorkbookNewSheet
  • WorkbookOpen

Události sešitu

Seznam události jež jsou součásti daného sešitu. Jsou uloženy v modulu ThisWorkook (tento sešit).

Seznam události:

  • Activate - Při aktivování sešitu (při otevření sešitu po události Open a při přechodu do jiného sešitu). Neprobíha při vytváření nového sešitu. Využití pro úpravu velikosti okna, přepočet, atd.
  • AddinInstall - pokud je sešit instalován jako doplněk
  • AddinUninstall - pokud je doplněk odinstalován
  • BeforeClose - proběhne při požadavku na uzavření sešitu. Ještě než dojde k uzavření sešitu (tj. než se zobrazí okno zda si přejete sešit uložit). Což může někdy působit problémy když zapomenete uložit (nebo toto okno programově přeskočíte).
  • BeforcPrint - proběhne před tím než dojde k tisku. Při požadavku na tisk nebo náhled. Třeba pro upozornění, aby vložil do tiskárny papír :). Výhoda, je že funguje i na tlačítko náhled. Dá se testovat i bez tiskárny...
  • BeforeSave - proběhne před uložením sešitu. Zde se může automaticky uložit kopie, dotazy na vytisknutí, atd.
  • Deactivate - poběhne buď při uzavíraní sešitu (po události BeforeClose) a při deaktivaci sešitu.
  • NewSheet - Při vložení nového listu
  • Open - Probíhá při otevírání sešitu. Podle mého názoru nejčastěji použivaná událost. Například pro spuštění formuláře, automatizovaný výpočet, zápis údajů (například kdy byl sešit spuštěn) atd.
  • SheetActivate - při aktivaci listu
  • SheetBeforeDoubleClick - před akcí kterou vyvolá dvojkliku myší. Případně jen při dvojkliku
  • SheetBeforeRightClick - před akcí kterou vyvolá kliku pravého tlačítka myší.
  • SheetCalculate - než se přepočte list. Tj. při požadavku na přepočet listu se provede nejprve tato událost.
  • SheetChange - změna v sešitu
  • SheetDeactivate - před požadavkem na deaktivaci libovolného listu
  • SheetSelectionChange - při změně výběru
  • WindowActivate - před požadavkem na aktivaci libovolného okna sešitu
  • WindowDeactivate - před požadavkem na deaktivaci libovolného okna sešitu
  • WindowResize - před požadavkem na změnu velikosti libovolného okna sešitu
  • SheetFollowHyperlink - při kliknutí na hypertextový odkaz

Události listu

události objektů Worksheet. Každý list má svůj vlasní modul pro psání kodů. Takže pokud máte procedury uvedene v listě 1 tak na listě 2 fungovat nebudou. Což je někdy příčinou zbytečného hledání problému.

  • Activate - aktivace listu (jak jinak :)
  • BeforeDoubleClick - dvojklik na buňku. Podobně jako u BeforeRightClick tato událost neproběhne pokud se klikne na graf.
  • BeforeRightClick - klik pravým tlačítkem na buňku. Nereaguje při kliku na graf.
  • Calculate - přepočítání listu. Proběhne při každém přeočítaní listu
  • Change - změna obsahu buněk. Tato funkce je využívana nejčastěji. Tato událost nastane ať změnu provede uživatel (tím, že něco přepíše) nebo VBA (program), nebo dojde k aktualizaci z vnějšího zdroje. K této události ale nedojde přidateli do listui graf, nebo přes menu vymážete formáty.
  • Deactivate - deaktivace listu
  • SelectionChange - změna výběru buněk.
  • FollowHyperlink - kliknutí na hypertextový odkaz

Události grafu v MS Excel

Pro práci s grafy v MS Excel.

  • Activate
  • BeforeDoubleClick
  • BeforeRightClick
  • Calculate
  • Deactivate
  • DragOver
  • DragPlot
  • MouseDown
  • MouseMove
  • MouseUp
  • Resize
  • Select
  • SeriesChange

Události formuláře

U formulářů záleží na konkretním prvku, dle tohoto prvku se mohou jednotlivé události mírně lišit. Ne všechny prvky mohou obsluhovat všechny události.

Ostatní události

Spouštění maker při vzniku určité události

Vlastnosti

  • OnWindow
  • OnCalculate
  • OnEntry
  • OnData

Metody

  • OnTime
  • OnKey
  • OnRepeat
  • OnUndo

Poznámka

V dalších článcích se k jednotlivým událostem vrátim podrobněji včetně příkladu jejich použití.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Vladimír Šob

Přidáno: 13.09.13 10:40

Při vytváření tabulek v Excel 2003 jsem narazil na problém: V sešitu mám nastavené nějaké události Workbook_BeforeClose Workbook_Open Workbook_BeforeSave Po příkazu SaveAs mám otevřený sešit s novým názvem, ale v tomto otevřeném sešitu žádné události neprobíhají. Až po zavření sešitu a někdy až po zavření Excelu a opětovném otevření sešitu události normálně fungují. Nevíte někdo jak problém odstranit? Předem děkuji.

Pavel Lasák

Přidáno: 13.09.13 20:32

To Vladimír Šob: Pokud dobře chápu dotaz, tak problém je mezi Save a SaveAs - jsou rozdílné "operace". Možné řešení nepovolit okno Uložit jako.

Vladimír Šob

Přidáno: 15.09.13 07:59

Děkuji za odpověď. Potřebuji aby, pokud otevřu sešit a provedu v něm změny, je nutné ho uložit pod jiným názvem (pod jinou revizí dokumentu) a potom pokračovat v práci. Pokud to ale udělám, stane se to, co jsem popsal v prvním příspěvku, nepracují události. Někdy ani nestačí sešit se změněným názvem ukončit. I po ukončení a opětovném otevření události nepracují. Jediné co funguje je po příkazu SaveAs úplně ukončit excel (Application.Quit) a znovu soubor otevřít. Potom události pracují.

Honza

Přidáno: 18.04.16 14:00

Je možné pomocí VBA spustit událost (která nenastala)? Děkuji.






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2021 |