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

Jste zde: Úvodní stránka » excel » vba-teorie-zaklady » onkey-monitoring-stisku-klaves-excel-vba

OnKey - monitorování a reakce na stisk kláves VBA

Videokurzy Excel

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

potřebujeme-li v kódu VBA reagovat a monitorovat stisk kláves

Úvodem

Potřebujete-li při práci ve VBA odchytávat stisk kláves a na tyto události reagovat. Třeba zobrazit formulář. Nebo zakázat nějakou kombinaci kláves :) Někdy je vhodné zamezit možnost vkládat údaje ze schránky, takže potřebujete zablokovat vložení pomocí Ctrl+V.

OnKey syntaxe

Spustí požadovaný postup (úkol) při stisku konkrétní klávesy nebo kombinace kláves.

Syntaxe

OnKey(Key, Procedure)
  • Key - povinné - indikuje stisknutí požadaované klávesy
  • Procedure - volitelně - která procedura se má provést (její jméno)

Zakázání / povolení Ctrl+V

Private Sub CommandButton1_Click() 'reset vypnuti kontroly stisku klaves (ctrl+v) Application.OnKey "^v", "" MsgBox "V tomto sesite je zakazano vkladat pres clipboard !!", vbInformation, "Oznameni" End Sub

Opětovné povolení stisku Ctrl + V

Private Sub CommandButton2_Click() 'obnovení kontroly stisku klaves (ctrl+v) Application.OnKey "^v" MsgBox "V tomto sesite je už povoleno vkládat pres clipboard !!", vbInformation, "Oznameni" End Sub

Poznámka, ještě je potřeba ošetřit vkládaní přes pravé tlačítko přes Worksheet_BeforeRightClick.

Jednoduchý ukázkový příklad

Než dlouhé rozepisování raději ukázkový příklad. Kód nutno umístit do modulu.

Stiskem tabelátoru bude se zobrazí zpráva "Dostal jsem Tě Donalede. Stisknul jsi TAB :)"

Sub StiskKlavesy() Application.OnKey "{TAB}", "Message" End Sub Sub Message() MsgBox "Dostal jsem Tě Donalede. Stisknul jsi TAB :)" End Sub

Reset klávesy TAB

Excel bude reagovat opět na Tab, tak jak je nastaveno v systému Windows. Nebude už vypisovat výše uvedený text.

Sub ResetOnKey() Application.OnKey "{TAB}" End Sub

Disable klávesy TAB

Excel nebude reagovat na stisk klávesy TAB.

Sub DisableOnKey() Application.OnKey "{TAB}","" End Sub

Kombinace kláves

Poznámka: Ctrl+S disable :) Zamezíte ukládání přes klávesovou zkratku Ctrl+S.

Application.OnKey "^s", ""

Poznámka: A to je vše potřebné pro práci s klávesami...

Trocha nezbytné teorie

Bez teoretických informací se neobejdeme, takže alespoň nejpotřebnější základ.

Tabulka kláves spolu s patřičným kódem

Kláves Kód Poznámka
ALT % procento
BACKSPACE {BACKSPACE}  
BACKSPACE {BS}  
BREAK {BREAK}  
CAPS LOCK {CAPSLOCK}  
CLEAR {CLEAR}  
CTRL ^ stříška / caret
DELETE {DELETE}  
DEL {DEL}  
DOWN ARROW {DOWN} šipka dolů
END {END}  
ENTER ~ vlnovka / tilde
ENTER {ENTER} Numerická klávesnice
ESC {ESCAPE}  
ESC {ESC}  
F1 až F15 {F1} až {F15}  
HELP {HELP}  
HOME {HOME}  
INS {INSERT}  
LEFT ARROW {LEFT} šipka vlevo
NUM LOCK {NUMLOCK}  
PAGE DOWN {PGDN}  
PAGE UP {PGUP}  
RETURN {RETURN}  
RIGHT ARROW {RIGHT} šipka vpravo
SCROLL LOCK {SCROLLLOCK}  
SHIFT + plus
TAB {TAB}  
UP ARROW {UP} šipka nahoru

Další ukázky

Stisk SHIFT+CTRL+šipka vpravo

Application.OnKey "+^{RIGHT}"

Závěrem

Lehký úvod do OnKey máme za sebou. Další informace se dají naléz na internetu (většinou v angličtině)

  • http://www.cpearson.com/excel/vbashortcutkeys.htm
  • http://www.bygsoftware.com/Excel/VBA/onkey.htm
  • http://msdn.microsoft.com/en-us/library/aa195807(v=office.11).aspx

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

Podpora - oceňte web a pozvěte mě na čokoládu

Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.

Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). 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 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil





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 - 2025 |