押されたキーを判定する

キー入力を判定するにはWindows APIの、GetAsyncKeyState を使用します。
GetAsyncKeyState(Key)の引数Keyに、調べたいキーコードを設定することで押されたかどうか判定できます。


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

キーコード表

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  



実行画面

「キーの判定」ボタンをクリックするとキー判定が開始します。
C6に判定結果が表示されます。
キーの判定ソフト

実行VBAコード

Option Explicit

'Windows API宣言
Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

Private Sub CommandButton1_Click()
    '代表的なキーの入力判定
    Do
        If GetAsyncKeyState(vbKeyEscape) Then
            Range("C6") = "ESCキー"
            'ESCキーで終了
            Exit Do
        ElseIf GetAsyncKeyState(vbKeyBack) Then
            Range("C6") = "BackSpaceキー"
        ElseIf GetAsyncKeyState(vbKeyLeft) Then
            Range("C6") = "←キー"
        ElseIf GetAsyncKeyState(vbKey0) Then
            Range("C6") = "0キー キーボード"
        ElseIf GetAsyncKeyState(vbKeyA) Then
            Range("C6") = "Aキー"
        ElseIf GetAsyncKeyState(vbKeyNumpad0) Then
            Range("C6") = "0キー テンキー"
        ElseIf GetAsyncKeyState(vbKeyF1) Then
            Range("C6") = "F1キー"
        
        End If
    Loop
 
End Sub



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved