The following list includes values for the most common Key Codes (also known as Scan or Virtual Key Codes) used with KeyDown, KeyUp and Screen_KeyPreview events and ASCII/ANSI codes for the first 256 characters (used with KeyPress).
For a full list of Virtual Key Codes see MSDN.
Character | Description | KeyCode | ASCII |
---|---|---|---|
NUL | Null char | - | $00 (0) |
SOH | Start of Heading | - | $01 (1) |
STX | Start of Text | - | $02 (2) |
ETX | End of Text | - | $03 (3) |
EOT | End of Transmission | - | $04 (4) |
ENQ | Enquiry | - | $05 (5) |
ACK | Acknowledgment | - | $06 (6) |
BEL | Bell | - | $07 (7) |
BS | Back Space | $08 (8) | $08 (8) |
HT | Horizontal Tab (TAB) | $09 (9) | $09 (9) |
LF | Line Feed | - | $0A (10) |
VT | Vertical Tab | - | $0B (11) |
FF | Form Feed | - | $0C (12) |
CR | Carriage Return (ENTER) | $0D (13) | $0D (13) |
SO | Shift Out / X-On | - | $0E (14) |
SI | Shift In / X-Off | - | $0F (15) |
DLE | Data Line Escape | - | $10 (16) |
DC1 | Device Control 1 (oft. XON) | - | $11 (17) |
DC2 | Device Control 2 | - | $12 (18) |
DC3 | Device Control 3 (oft. XOFF) | - | $13 (19) |
DC4 | Device Control 4 | - | $14 (20) |
NAK | Negative Acknowledgement | - | $15 (21) |
SYN | Synchronous Idle | - | $16 (22) |
ETB | End of Transmit Block | - | $17 (23) |
CAN | Cancel | - | $18 (24) |
EM | End of Medium | - | $19 (25) |
SUB | Substitute | - | $1A (26) |
ESC | Escape (ESC) | $1B (27) | $1B (27) |
FS | File Separator | - | $1C (28) |
GS | Group Separator | - | $1D (29) |
RS | Record Separator | - | $1E (30) |
US | Unit Separator | - | $1F (31) |
Key | KeyCode | Key | KeyCode | |
---|---|---|---|---|
Shift | $10 (16) | Win Key | $5B (91) | |
Ctrl | $11 (17) | Win Menu | $5D (93) | |
Alt | $12 (18) | F1 | $70 (112) | |
Pause/Break | $13 (19) | F2 | $71 (113) | |
Caps Lock | $14 (20) | F3 | $72 (114) | |
Page Up | $21 (33) | F4 | $73 (115) | |
Page Down | $22 (34) | F5 | $74 (116) | |
End | $23 (35) | F6 | $75 (117) | |
Home | $24 (36) | F7 | $76 (118) | |
Left Arrow | $25 (37) | F8 | $77 (119) | |
Up Arrow | $26 (38) | F9 | $78 (120) | |
Right Arrow | $27 (39) | F10 | $79 (121) | |
Down Arrow | $28 (40) | F11 | $80 (128) | |
PrntScrn | $2C (44) | F12 | $81 (129) | |
Insert | $2D (45) | NumLock | $90 (144) | |
Delete | $2E (46) | ScrollLock | $91 (145) |
Character(Numlock On) | Key Code | ASCII | Character(Numlock Off) | Key Code | ASCII |
---|---|---|---|---|---|
0 | $60 (96) | $30 (48) | Insert | $2D (45) | - |
1 | $61 (97) | $31 (49) | End | $23 (35) | - |
2 | $62 (98) | $32 (50) | Down Arrow | $28 (40) | - |
3 | $63 (99) | $33 (51) | Pg Down | $22 (34) | - |
4 | $64 (100) | $34 (52) | Left Arrow | $25 (37) | - |
5 | $65 (101) | $35 (53) | Form Feed(FF) | $0C (12) | $0C (12) |
6 | $66 (102) | $36 (54) | Right Arrow | $27 (39) | - |
7 | $67 (103) | $37 (55) | Home | $24 (36) | - |
8 | $68 (104) | $38 (56) | Up Arrow | $26 (38) | - |
9 | $69 (105) | $39 (57) | Pg Up | $21 (33) | - |
* | $6A (106) | $2A (42) | * | $6A (106) | $2A (42) |
+ | $6B (107) | $2B (43) | + | $6B (107) | $2B (43) |
- | $6C (108) | $2D (45) | - | $6C (108) | $2D (45) |
. | $6D (109) | $2E (46) | Delete | $2E (46) | - |
/ | $6E (110) | $2F (47) | / | $6E (110) | $2F (47) |
Character | Key Code | ASCII | Character | Key Code | ASCII | |
---|---|---|---|---|---|---|
Space | $20 (32) | $20 (32) | P | $50 (80)* | $50 (80) | |
! | $31 (49)* | $21 (33) | Q | $51 (81)* | $51 (81) | |
" | $32 (50)* | $22 (34) | R | $52 (82)* | $52 (82) | |
# | $DE (222) | $23 (35) | S | $53 (83)* | $53 (83) | |
$ | $34 (52)* | $24 (36) | T | $54 (84)* | $54 (84) | |
% | $35 (53)* | $25 (37) | U | $55 (85)* | $55 (85) | |
& | $37 (55)* | $26 (38) | V | $56 (86)* | $56 (86) | |
' | $C0 (192) | $27 (39) | W | $57 (87)* | $57 (87) | |
( | $39 (57)* | $28 (40) | X | $58 (88)* | $58 (88) | |
) | $30 (48)* | $29 (41) | Y | $59 (89)* | $59 (89) | |
* | $38 (56)* | $2A (42) | Z | $5A (90)* | $5A (90) | |
+ | $BB (187)* | $2B (43) | [ | $DB (219) | $5B (91) | |
, | $BC (188) | $2C (44) | \ | $DC (220) | $5C (92) | |
- | $BD (189) | $2D (45) | ] | $DD (221) | $5D (93) | |
. | $BE (190) | $2E (46) | ^ | $36 (54)* | $5E (94) | |
/ | $BF (191) | $2F (47) | _ | $BD (189)* | $5F (95) | |
0 | $30 (48) | $30 (48) | ` | $DF (223) | $60 (96) | |
1 | $31 (49) | $31 (49) | a | $41 (65) | $61 (97) | |
2 | $32 (50) | $32 (50) | b | $42 (66) | $62 (98) | |
3 | $33 (51) | $33 (51) | c | $43 (67) | $63 (99) | |
4 | $34 (52) | $34 (52) | d | $44 (68) | $64 (100) | |
5 | $35 (53) | $35 (53) | e | $45 (69) | $65 (101) | |
6 | $36 (54) | $36 (54) | f | $46 (70) | $66 (102) | |
7 | $37 (55) | $37 (55) | g | $47 (71) | $67 (103) | |
8 | $38 (56) | $38 (56) | h | $48 (72) | $68 (104) | |
9 | $39 (57) | $39 (57) | i | $49 (73) | $69 (105) | |
: | $BA (186)* | $3A (58) | j | $4A (74) | $6A (106) | |
; | $BA (186) | $3B (59) | k | $4B (75) | $6B (107) | |
< | $BC (188)* | $3C (60) | l | $4C (76) | $6C (108) | |
= | $BB (187) | $3D (61) | m | $4D (77) | $6D (109) | |
> | $BE (190)* | $3E (62) | n | $4E (78) | $6E (110) | |
? | $BF (191)* | $3F (63) | o | $4F (79) | $6F (111) | |
@ | $C0 (192)* | $40 (64) | p | $50 (80) | $70 (112) | |
A | $41 (65)* | $41 (65) | q | $51 (81) | $71 (113) | |
B | $42 (66)* | $42 (66) | r | $52 (82) | $72 (114) | |
C | $43 (67)* | $43 (67) | s | $53 (83) | $73 (115) | |
D | $44 (68)* | $44 (68) | t | $54 (84) | $74 (116) | |
E | $45 (69)* | $45 (69) | u | $55 (85) | $75 (117) | |
F | $46 (70)* | $46 (70) | v | $56 (86) | $76 (118) | |
G | $47 (71)* | $47 (71) | w | $57 (87) | $77 (119) | |
H | $48 (72)* | $48 (72) | x | $58 (88) | $78 (120) | |
I | $49 (73)* | $49 (73) | y | $59 (89) | $79 (121) | |
J | $4A (74)* | $4A (74) | z | $5A (90) | $7A (122) | |
K | $4B (75)* | $4B (75) | { | $DB (219)* | $7B (123) | |
L | $4C (76)* | $4C (76) | | | $DC (220)* | $7C (124) | |
M | $4D (77)* | $4D (77) | } | $DD (221)* | $7D (125) | |
N | $4E (78)* | $4E (78) | ~ | $DE (222)* | $7E (126) | |
O | $4F (79)* | $4F (79) | Delete | $2E (46) | $7F (127) |
* If Shift Key pressed.
Character | ASCII | Character | ASCII | Character | ASCII | ||
---|---|---|---|---|---|---|---|
€ | $80 (128) | « | $AB (171) | Ö | $D6 (214) | ||
$81 (129) | ¬ | $AC (172) | × | $D7 (215) | |||
‚ | $82 (130) | | $AD (173) | Ø | $D8 (216) | ||
ƒ | $83 (131) | ® | $AE (174) | Ù | $D9 (217) | ||
„ | $84 (132) | ¯ | $AF (175) | Ú | $DA (218) | ||
… | $85 (133) | ° | $B0 (176) | Û | $DB (219) | ||
† | $86 (134) | ± | $B1 (177) | Ü | $DC (220) | ||
‡ | $87 (135) | ² | $B2 (178) | Ý | $DD (221) | ||
ˆ | $88 (136) | ³ | $B3 (179) | Þ | $DE (222) | ||
‰ | $89 (137) | ´ | $B4 (180) | ß | $DF (223) | ||
Š | $8A (138) | µ | $B5 (181) | à | $E0 (224) | ||
‹ | $8B (139) | ¶ | $B6 (182) | á | $E1 (225) | ||
Œ | $8C (140) | · | $B7 (183) | â | $E2 (226) | ||
$8D (141) | ¸ | $B8 (184) | ã | $E3 (227) | |||
Ž | $8E (142) | ¹ | $B9 (185) | ä | $E4 (228) | ||
$8F (143) | º | $BA (186) | å | $E5 (229) | |||
$90 (144) | » | $BB (187) | æ | $E6 (230) | |||
‘ | $91 (145) | ¼ | $BC (188) | ç | $E7 (231) | ||
’ | $92 (146) | ½ | $BD (189) | è | $E8 (232) | ||
“ | $93 (147) | ¾ | $BE (190) | é | $E9 (233) | ||
” | $94 (148) | ¿ | $BF (191) | ê | $EA (234) | ||
• | $95 (149) | À | $C0 (192) | ë | $EB (235) | ||
– | $96 (150) | Á | $C1 (193) | ì | $EC (236) | ||
— | $97 (151) | Â | $C2 (194) | í | $ED (237) | ||
˜ | $98 (152) | Ã | $C3 (195) | î | $EE (238) | ||
™ | $99 (153) | Ä | $C4 (196) | ï | $EF (239) | ||
š | $9A (154) | Å | $C5 (197) | ð | $F0 (240) | ||
› | $9B (155) | Æ | $C6 (198) | ñ | $F1 (241) | ||
œ | $9C (156) | Ç | $C7 (199) | ò | $F2 (242) | ||
$9D (157) | È | $C8 (200) | ó | $F3 (243) | |||
ž | $9E (158) | É | $C9 (201) | ô | $F4 (244) | ||
Ÿ | $9F (159) | Ê | $CA (202) | õ | $F5 (245) | ||
$A0 (160) | Ë | $CB (203) | ö | $F6 (246) | |||
¡ | $A1 (161) | Ì | $CC (204) | ÷ | $F7 (247) | ||
¢ | $A2 (162) | Í | $CD (205) | ø | $F8 (248) | ||
£ | $A3 (163) | Î | $CE (206) | ù | $F9 (249) | ||
¤ | $A4 (164) | Ï | $CF (207) | ú | $FA (250) | ||
¥ | $A5 (165) | Ð | $D0 (208) | û | $FB (251) | ||
¦ | $A6 (166) | Ñ | $D1 (209) | ü | $FC (252) | ||
§ | $A7 (167) | Ò | $D2 (210) | ý | $FD (253) | ||
¨ | $A8 (168) | Ó | $D3 (211) | þ | $FE (254) | ||
© | $A9 (169) | Ô | $D4 (212) | ÿ | $FF (255) | ||
ª | $AA (170) | Õ | $D5 (213) |
The following simple but clever bit of code converts virtual key codes to ASCII and comes from this page on Sjouke Hamstra's blog.
' Press shift-key than click mouse
Debug.Show
Trace Chr(VkKeyToAscii(65))
Trace Chr(VkKeyToAscii(Asc("8"))) ' –> *
Function VkKeyToAscii(keycode As Int) As Int
// Sjouke Hamstra
Dim sb As String * 4
Static Dim keyboardState(256) As Byte
~GetKeyboardState(ArrayAddr(keyboardState()))
If ToAscii(keycode, 0, ArrayAddr(keyboardState()), sb, 0) == 1
Return Asc(sb)
Else
Return 0
EndIf
EndFunc
{Created by Sjouke Hamstra; Last updated: 15/12/2015 by James Gaite}