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

Nový videokurz na Seduo: Excel pro začátečníky

     

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


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: 01.11.2014 14:38

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

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

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

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


VecnyZacatecnik

Přidáno: 05.09.12 06:35

Zajímavá vlastnost. Pokud spustím výše uvedený kód, tak po stisku dané klávesové kombinace funguje normálně. Pokud však klávesovou kombinací změním, a klávesou F5´spustím upravený kód, tak funguje i ta původní klávesová kombinace, která už ovšem v kódu není ! Je to "vlastnost" Excelu ? Na rozdíl od funkce StickKlavesy() mi není zcela jasný význam dalších funkcí: ResetOnKey a DisableOnKey. Díky předem za dovysvětlení.

Pavel Lasák

Přidáno: 05.09.12 17:29

To : ResetOnKey, DisableOnKey jsou vaše funkce, která provede "reset" kláves nastavených pomocí OnKey. Tyto funkce si musíte naprogramovat. Pokud jej neprovedete může se Excel chovat nestandartně jak popisujete.


Přidání nového komentáře

Poznámka: Z časových důvodu není v mých sílách zodpovědět všechny dotazy. Děkuji za pochopení.




(vlož číslo padesátpět)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky, kromě <code> a </code> (pro vkládání VBA kódu). Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu. V komentářích si tykáme. ;-)






Sdílejte

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

Nové články


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

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 - 2016 | 10215

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.