ExcelVBAで押されたキー判定する

GetAsyncKeyState ()を使う

Option Explicit

#If Win64 Then
Private Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Integer
#Else
Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Integer
#End If


'Ctrl+Cキー
Public Sub CheckKey()
     If GetAsyncKeyState(vbKeyControl) Then
        If GetAsyncKeyState(vbKeyC) Then
            ...
        End If
     End If

End Sub


キーコード表

F1~F16

F1 112 vbKeyF1
F2 113 vbKeyF2
F3 114 vbKeyF3
F4 115 vbKeyF4
F5 116 vbKeyF5
F6 117 vbKeyF6
F7 118 vbKeyF7
F8 119 vbKeyF8
F9 120 vbKeyF9
F10 121 vbKeyF10
F11 122 vbKeyF11
F12 123 vbKeyF12
F13 124 vbKeyF13
F14 125 vbKeyF14
F15 126 vbKeyF15
F16 127 vbKeyF16

0~9 (キーボード)

0 48 vbKey0
1 49 vbKey1
2 50 vbKey2
3 51 vbKey3
4 52 vbKey4
5 53 vbKey5
6 54 vbKey6
7 55 vbKey7
8 56 vbKey8
9 57 vbKey9

0~9(テンキー)

0 96 vbKeyNumpad0
1 97 vbKeyNumpad1
2 98 vbKeyNumpad2
3 99 vbKeyNumpad3
4 100 vbKeyNumpad4
5 101 vbKeyNumpad5
6 102 vbKeyNumpad6
7 103 vbKeyNumpad7
8 104 vbKeyNumpad8
9 105 vbKeyNumpad9
アスタリスク 106 vbKeyMultiply
プラス 107 vbKeyAdd
Enter 108 vbKeySeparator
マイナス 109 vbKeySubtract
ピリオド 110 vbKeyDecimal
スラッシュ 111 vbKeyDivide

A~Z

A 65 vbKeyA
B 66 vbKeyB
C 67 vbKeyC
D 68 vbKeyD
E 69 vbKeyE
F 70 vbKeyF
G 71 vbKeyG
H 72 vbKeyH
I 73 vbKeyI
J 74 vbKeyJ
K 75 vbKeyK
L 76 vbKeyL
M 77 vbKeyM
N 78 vbKeyN
O 79 vbKeyO
P 80 vbKeyP
Q 81 vbKeyQ
R 82 vbKeyR
S 83 vbKeyS
T 84 vbKeyT
U 85 vbKeyU
V 86 vbKeyV
W 87 vbKeyW
X 88 vbKeyX
Y 89 vbKeyY
Z 90 vbKeyZ

その他のボタン

BackSpace 8 vbKeyBack
Tab 9 vbKeyTab
Enter 13 vbKeyReturn
Shift 16 vbKeyShift
Ctrl 17 vbKeyControl
Alt 18 vbKeyMenu
Pause 19 vbKeyPause
Esc 27 vbKeyEscape
変換 28  
無変換 29  
スペース 32 vbKeySpace
PgUp 33 vbKeyPageUp
PgDown 34 vbKeyPageDown
Home 36 vbKeyHome
37 vbKeyLeft
38 vbKeyUp
39 vbKeyRight
40 vbKeyDown
Ins 45 vbKeyInsert
Del 46 vbKeyDelete
Win 91  
ポップアップ 93  
NumLock 144 vbKeyNumlock
: 186  
; 187  
, 188  
- 189  
. 190  
/ 191  
@ 192  
[ 219  
\ 220  
] 221  
^ 222  
226