VBA est en mesure d’exécuter une procédure lorsque l’utilisateur appuie sur une touche ou une combinaison de touches. Pour cela, vous utiliserez la procédure Application.OnKey :
Application.OnKey "touche", "proc"
Où touche est la touche ou la combinaison de touches qui déclenche l’exécution de la procédure proc.
Le tableau ci-après donne un aperçu de la syntaxe à utiliser.
| Touche | Code de la touche |
| Majuscule | + |
| Contrôle | ^ |
| Alt | % |
| Suppr | {DELETE} |
| Retour Arrière | {BACKSPACE} |
| Verr Num | {NUMLOCK} |
| Verr Maj | {CAPSLOCK} |
| Arrêt Defil | {SCROLLLOCK} |
| Page Suivante | {PGDN} |
| Page précédente | {PGUP} |
| Haut | {UP} |
| Bas | {DOWN} |
| Gauche | {LEFT} |
| Droite | {RIGHT} |
| Origine | {HOME} |
| Fin | {END} |
| F1 à F12 | {F1} à {F12} |
| Entrée | {ENTER} |
| Echap | {ESC} |
| Insertion | {INSERT} |
| Impr écran | {PRTSC} |
| Tabulation | {TAB} |
Vous appellerez la méthode Application.OnKey dans la procédure Workbook_Open().
Ouvrez la fenêtre Microsoft Visual Basic pour Applications du classeur concerné. Double-cliquez sur ThisWorkbook dans la fenêtre Projet (1) et sélectionnez Workbook dans la liste déroulante Objet (2). La procédure Workbook_Open() est automatiquement créée. Il ne vous reste plus qu’à la compléter (3). Ici par exemple, la procédure raccourci() est exécutée lorsque l’utilisateur appuie sur Contrôle + Alt + j :

Voici le code utilisé :
Private Sub Workbook_Open() Application.OnKey "^%j", "raccourci" End Sub
Il ne reste plus qu’à définir la procédure raccourci(). Sous Module, double-cliquez sur Module1 et définissez la procédure raccourci() :
Sub raccourci() MsgBox "Vous avez appuyé sur Contrôle + Alt + J" End Sub
Chaque fois que l’utilisateur appuie simultanément sur les touches Contrôle, Alt et j, une boîte de dialogue s’affiche :




Cette commande ne fonctionne pas avec Excel 2016