Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
potřebujeme-li v kódu VBA reagovat a monitorovat stisk kláves
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.
Spustí požadovaný postup (úkol) při stisku konkrétní klávesy nebo kombinace kláves.
OnKey(Key, Procedure)
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.
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
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
Excel nebude reagovat na stisk klávesy TAB.
Sub DisableOnKey()
Application.OnKey "{TAB}",""
End Sub
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...
Bez teoretických informací se neobejdeme, takže alespoň nejpotřebnější základ.
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 |
Stisk SHIFT+CTRL+šipka vpravo
Application.OnKey "+^{RIGHT}"
Lehký úvod do OnKey máme za sebou. Další informace se dají naléz na internetu (většinou v angličtině)
Článek byl aktualizován: 19.09.2020 11:07
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.
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ů.
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í.
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.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
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 - 2024 |