Příklady Excel VBA: Příklady úvodních událostí

Pokud se snažíte dobře porozumět Excelu VBA , pravděpodobně by se vám mohlo hodit několik příkladů k rozvoji této základní vizuální dovednosti. Zde najdete několik příkladů Excel VBA, abyste se s tímto podnikáním manipulace s událostmi mohli seznámit.

Příklad Excel VBA: Událost Open pro sešit

Jednou z nejčastěji používaných událostí aplikace Excel VBA je událost Otevření sešitu. Předpokládejme, že máte sešit, který používáte každý den. Procedura Workbook_Open v tomto příkladu se provede při každém otevření sešitu. Postup kontroluje den v týdnu; pokud je pátek, kód vám zobrazí připomenutí.

Chcete-li vytvořit proceduru Excel VBA, která se spustí vždy, když dojde k události Otevřít sešit, postupujte takto:

Otevřete sešit aplikace Excel.
Postačí jakýkoli excelový sešit.

Stisknutím Alt+F11 aktivujte VBE.

Vyhledejte sešit v okně projektu.

V případě potřeby poklepejte na název projektu, aby se zobrazily jeho položky.

Poklepejte na položku ThisWorkbook.
VBE zobrazí prázdné okno Kód pro objekt ThisWorkbook.

V okně Kód vyberte z rozevíracího seznamu Objekt (vlevo) Sešit.
VBE zadá začátek a konec příkazu pro proceduru Workbook_Open.

Zadejte následující příkazy, takže celá procedura události vypadá takto:

Private Sub Workbook_Open()
  Dim Msg As String
  Pokud Weekday(Now) = 6 Pak
    Msg = "Dnes je pátek. Nezapomeňte "
    Msg = Zpráva & "odeslat zprávu TPS!"
    MsgBox Msg
  End If
End Sub

Okno Kód by mělo vypadat takto.

Příklady Excel VBA: Příklady úvodních událostí

Tato procedura obsluhy události se provede při otevření sešitu.

Workbook_Open se spustí automaticky při každém otevření sešitu. K určení dne v týdnu používá funkci WeekDay jazyka VBA. Pokud je pátek (6. den), okno se zprávou uživateli připomene, aby podal hlášení. Pokud není pátek, nic se neděje.

Pokud dnes není pátek, možná budete mít problém tento postup otestovat. Stačí změnit 6 tak, aby odpovídala dnešnímu skutečnému číslu dne.

A tento postup si samozřejmě můžete libovolně upravit. Například následující verze zobrazí zprávu při každém otevření sešitu. To je po chvíli otravné.

Procedura Workbook_Open může dělat téměř cokoli. Tyto obslužné rutiny událostí se často používají pro následující:

  • Zobrazování uvítacích zpráv (například ve Frankově skvělém sešitu)
  • Otevření dalších sešitů
  • Aktivace konkrétního listu v sešitu
  • Nastavení vlastních místních nabídek

Zde je poslední příklad Excel VBA procedury Workbook_Open, která používá funkce GetSetting a SaveSetting ke sledování toho, kolikrát byl sešit otevřen. Funkce SaveSetting zapíše hodnotu do registru Windows a funkce GetSetting tuto hodnotu načte (podrobnosti viz systém nápovědy). Následující příklad Excel VBA načte počet z registru, zvýší jej a poté jej uloží zpět do registru. Také sděluje uživateli hodnotu Cnt, která odpovídá počtu otevření sešitu.

Private Sub Workbook_Open()
  Dim Cnt As Long
  Cnt = GetSetting("MyApp", "Settings", "Open", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Settings", "Open", Cnt
  MsgBox "Tento sešit byl otevřen " & Cnt & " krát."
End Sub

Příklady Excel VBA: Příklady úvodních událostí

Použití obslužné rutiny události Workbook_Open ke sledování toho, kolikrát byl sešit otevřen.

Příklad Excel VBA: Událost BeforeClose pro sešit

Zde je příklad procedury obsluhy události Excel VBA Workbook_BeforeClose, která se spustí automaticky bezprostředně před zavřením sešitu. Tento postup se nachází v okně Kód pro objekt ThisWorkbook:

Private Sub Workbook_BeforeClose (Zrušit jako Boolean)
  Dim Msg As String
  Dim Ans As Long
  Ztlumit FName jako řetězec
  Msg = "Chcete vytvořit zálohu tohoto souboru?"
  Ans = MsgBox(Msg, vbYesNo)
  If Ans = vbYes Then
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  End If
End Sub

Tato rutina používá okno se zprávou k dotazu uživatele, zda si přeje vytvořit záložní kopii sešitu. Pokud je odpověď ano, kód používá metodu SaveCopyAs k uložení záložní kopie souboru na jednotku F. Pokud tento postup přizpůsobíte pro své vlastní použití, musíte změnit jednotku a cestu.

Programátoři Excelu často používají proceduru Workbook_BeforeClose, aby po sobě uklidili. Pokud například pomocí procedury Workbook_Open změníte některá nastavení při otevření sešitu (například skryjete stavový řádek), je vhodné pouze vrátit nastavení do původního stavu při zavření sešitu. Tuto elektronickou správu domácnosti můžete provést pomocí procedury Workbook_BeforeClose.

Při použití události Workbook_BeforeClose mějte na paměti toto: Pokud zavřete Excel a jakýkoli otevřený soubor se od posledního uložení změnil, Excel zobrazí obvyklé okno se zprávou „Chcete uložit své změny“. Kliknutím na tlačítko Storno zrušíte celý proces uzavření. Ale událost Workbook_BeforeClose bude stejně provedena.

Příklad Excel VBA: Událost BeforeSave pro sešit

Událost BeforeSave, jak její název napovídá, se spustí před uložením sešitu. K této události dojde, když zvolíte Soubor → Uložit nebo Soubor → Uložit jako.

Následující postup, který je umístěn v okně Kód pro objekt ThisWorkbook, ukazuje událost BeforeSave. Rutina aktualizuje hodnotu v buňce (buňka A1 na List1) při každém uložení sešitu. Jinými slovy, buňka A1 slouží jako počítadlo, které sleduje, kolikrát byl soubor uložen.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI _
  Jako Boolean, Zrušit jako Boolean)
  Dim Counter As Range
  Set Counter = Sheets("Sheet1").Range("A1")
  Counter.Value = Counter.Value + 1
End Sub

Všimněte si, že procedura Workbook_BeforeSave má dva argumenty: SaveAsUI a Cancel. Chcete-li předvést, jak tyto argumenty fungují, prozkoumejte následující makro, které se provede před uložením sešitu. Tento postup se pokusí zabránit uživateli v uložení sešitu pod jiným názvem. Pokud uživatel vybere Soubor → Uložit jako, argument SaveAsUI má hodnotu True.

Když se kód spustí, zkontroluje hodnotu SaveAsUI. Pokud je tato proměnná True, procedura zobrazí zprávu a nastaví Cancel na True, čímž zruší operaci Save.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI _
  Jako Boolean, Zrušit jako Boolean)
  Pokud SaveAsUI Then
    MsgBox "Nelze uložit kopii tohoto sešitu!"
  Zrušit = Pravda
  End If
End Sub

Všimněte si, že tento postup skutečně nikomu nezabrání v uložení kopie pod jiným názvem. Pokud to někdo opravdu chce udělat, stačí otevřít sešit s vypnutými makry. Když jsou makra zakázána, jsou zakázány také procedury obsluhy událostí, což dává smysl, protože jde koneckonců o makra.

Leave a Comment

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Jak používat příkazy Znovu a Opakovat ve Wordu 2016

Objevte, jak efektivně využívat příkazy Znovu a Opakovat ve Wordu 2016 pro opravy dokumentů a zlepšení pracovního toku.

Jak změnit zamčené a skryté formátování buněk

Jak změnit zamčené a skryté formátování buněk

Naučte se, jak efektivně změnit stav buněk v Excelu 2010 z uzamčených na odemčené nebo z neskrytého na skrytý s naším podrobným průvodcem.

Jak přeložit text v cizím jazyce ve Wordu 2016

Jak přeložit text v cizím jazyce ve Wordu 2016

Zjistěte, jak efektivně využít překladové nástroje v Office 2016 pro překlad slov a frází. Překlad Gizmo vám pomůže překládat text s lehkostí.

Jak používat šablony ve Wordu 2013

Jak používat šablony ve Wordu 2013

Šablona ve Wordu šetří čas a usnadňuje vytváření dokumentů. Zjistěte, jak efektivně používat šablony ve Wordu 2013.

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Jak vytvořit e-mailová upozornění pro skupinu SharePointu

Zjistěte, jak si vytvořit e-mailová upozornění ve SharePointu a zůstat informováni o změnách v dokumentech a položkách.

Obsah SharePoint Online a typy obsahu

Obsah SharePoint Online a typy obsahu

Objevte skvělé funkce SharePoint Online, včetně tvorby a sdílení dokumentů a typů obsahu pro efektivnější správu dat.

Výpočet fiskálního čtvrtletí pro datum v Excelu

Výpočet fiskálního čtvrtletí pro datum v Excelu

Zjistěte, jak vypočítat fiskální čtvrtletí v Excelu pro různá data s použitím funkce CHOOSE.

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Jak vytvořit hypertextový odkaz na jiný snímek v aplikaci PowerPoint 2007

Zjistěte, jak vytvořit hypertextový odkaz v PowerPointu, který vám umožní pohodlně navigovat mezi snímky. Použijte náš návod na efektivní prezentace.

Zobrazit starší verzi dokumentu aplikace Word 2016

Zobrazit starší verzi dokumentu aplikace Word 2016

Uložili jste nedávno svůj dokument? Náš návod vám ukáže, jak zobrazit starší verze dokumentu v aplikaci Word 2016.

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra pásu karet a panelu nástrojů Rychlý přístup v Excelu 2013

Jak přiřadit makra vlastní kartě na pásu karet nebo tlačítku na panelu nástrojů Rychlý přístup. Návod pro Excel 2013.