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
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 .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
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.
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.
|
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 - 2025 |