Jak používat události OnTime a události stisknutí klávesy v Excelu 2016 VBA

V programování VBA pro Excel 2016 můžete použít dva typy událostí, které nejsou spojeny s objekty: čas a stisknutí kláves. Protože čas a stisknutí kláves nejsou spojeny s konkrétním objektem, jako je sešit nebo pracovní list, naprogramujete tyto události v normálním modulu VBA.

Událost OnTime

Událost OnTime nastane, když nastane určitá denní doba. Následující příklad ukazuje, jak přimět Excel ke spuštění procedury, když dojde k události 15:00. V tomto případě vám hlas robota řekne, abyste se probudili, doprovázený zprávou:

Sub SetAlarm()
  Application.OnTime 0,625, „DisplayAlarm“
End Sub
Dílčí DisplayAlarm()
  Application.Speech.Speak („Hej, probuď se“)
  MsgBox "Je čas na odpolední přestávku!"
End Sub

V tomto příkladu je použita metoda OnTime objektu Application. Tato metoda používá dva argumenty: čas (0,625 nebo 15:00) a název procedury Sub, která se má spustit, když dojde k časové události (DisplayAlarm).

Tento postup je docela užitečný, pokud máte tendenci se do práce tak zamotat, že zapomínáte na schůzky a schůzky. Stačí nastavit událost OnTime, která se vám připomene.

Pro většinu lidí je obtížné uvažovat o čase z hlediska systému číslování v Excelu. Proto můžete chtít použít funkci VBA TimeValue k vyjádření času. TimeValue převede řetězec, který vypadá jako čas, na hodnotu, kterou Excel zvládne. Následující prohlášení ukazuje jednodušší způsob, jak naprogramovat událost na 15:00:

Application.OnTime TimeValue(“15:00:00”), “DisplayAlarm”

Pokud chcete naplánovat událost vzhledem k aktuálnímu času (například za 20 minut), můžete použít následující příkaz:

Application.OnTime Now + TimeValue(“00:20:00”), “DisplayAlarm”

Ke spuštění procedury VBA v určitý den můžete také použít metodu OnTime. Musíte se ujistit, že váš počítač stále běží a že sešit s postupem zůstává otevřený. Následující prohlášení spouští proceduru DisplayAlarm v 17:00 dne 31. prosince 2016:

Application.OnTime DateValue(“31. 12. 2016 17:00”), “DisplayAlarm”

Tento konkrétní řádek kódu by se mohl hodit, aby vás upozornil, že musíte jít domů a připravit se na silvestrovské oslavy.

Zde je další příklad, který používá událost OnTime. Provedení procedur UpdateClock zapíše čas do buňky A1 a také naprogramuje další událost o pět sekund později. Tato událost znovu spustí proceduru UpdateClock. Čistým efektem je, že buňka A1 je aktualizována aktuálním časem každých pět sekund. Chcete-li zastavit události, proveďte proceduru StopClock (která zruší událost). Všimněte si, že NextTick je proměnná na úrovni modulu, která ukládá čas pro další událost.

Ztlumit Další Označte jako datum
Sub UpdateClock()
' Aktualizuje buňku A1 aktuálním časem
  ThisWorkbook.Sheets(1).Rozsah(“A1”) = Čas
Nastavte další událost za pět sekund
  NextTick = Now + TimeValue(“00:00:05”)
  Application.OnTime NextTick, „UpdateClock“
End Sub
Sub StopClock()
' Zruší událost OnTime (zastaví hodiny)
  Při chybě pokračovat dále
  Application.OnTime NextTick, “UpdateClock”, , False
End Sub

Událost OnTime přetrvává i po zavření sešitu. Jinými slovy, pokud zavřete sešit bez spuštění procedury StopClock, sešit se sám znovu otevře za pět sekund (za předpokladu, že Excel stále běží). Chcete-li tomu zabránit, použijte proceduru události Workbook_BeforeClose, která obsahuje následující příkaz:

Zavolejte StopClock

Metoda OnTime má dva další argumenty. Pokud plánujete použít tuto metodu, měli byste se podívat na systém nápovědy, kde najdete úplné podrobnosti.

Pokud byste chtěli vidět poněkud komplikovanou aplikaci, podívejte se na tuto aplikaci analogových hodin. Ciferník je ve skutečnosti graf a graf se aktualizuje každou sekundu, aby zobrazoval denní dobu. Zbytečné, ale zábavné.

Jak používat události OnTime a události stisknutí klávesy v Excelu 2016 VBA

Aplikace pro analogové hodiny.

Události stisku kláves

Při práci Excel neustále sleduje, co píšete. Z tohoto důvodu můžete věci nastavit tak, aby stisk klávesy nebo kombinace kláves provedl proceduru.

Zde je příklad, který změní přiřazení kláves PgDn a PgUp:

Sub Setup_OnKey()
  Application.OnKey „{PgDn}“, „PgDn_Sub“
  Application.OnKey „{PgUp}“, „PgUp_Sub“
End Sub
Sub PgDn_Sub()
  Při chybě pokračovat dále
  ActiveCell.Offset(1, 0).Aktivovat
End Sub
Sub PgUp_Sub()
  Při chybě pokračovat dále
  ActiveCell.Offset(-1, 0).Aktivovat
End Sub

Po nastavení událostí OnKey provedením procedury Setup_OnKey se stisknutím PgDn přesunete o jeden řádek dolů. Stisknutím tlačítka PgUp se přesunete o jeden řádek nahoru.

Všimněte si, že kódy kláves jsou uzavřeny ve složených závorkách, nikoli v závorkách. Úplný seznam kódů klávesnice naleznete v systému nápovědy. Vyhledejte OnKey.

V tomto příkladu se příkaz On Error Resume Next používá k ignorování všech generovaných chyb. Pokud je například aktivní buňka v prvním řádku, pokus o posun o jeden řádek nahoru způsobí chybu, kterou lze bezpečně ignorovat. A pokud je aktivní list s grafem, není zde žádná aktivní buňka.

Provedením následující rutiny zrušíte události OnKey:

Sub Cancel_OnKey()
  Application.OnKey „{PgDn}“
  Application.OnKey „{PgUp}“
End Sub

Pomocí prázdný řetězec jako druhý argument pro onkey metody však nelze zrušit onkey událost. Spíše způsobí, že Excel jednoduše ignoruje stisk klávesy. Například následující příkaz říká Excelu, aby ignoroval Alt+F4. Znak procenta představuje klávesu Alt:

  Application.OnKey „%{F4}“, „“

Ačkoli můžete použít metodu OnKey k přiřazení klávesové zkratky pro provádění makra, měli byste pro tento úkol použít dialogové okno Možnosti makra.

Pokud zavřete sešit obsahující kód a necháte Excel otevřený, metoda OnKey nebude resetována. V důsledku toho stisknutí klávesové zkratky způsobí, že Excel automaticky otevře soubor s makrem. Abyste tomu zabránili, měli byste do kódu události Workbook_BeforeClose zahrnout kód pro resetování události OnKey.

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.