Nhận mã KeyAscii trên form.

Liên hệ QC

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,883
Được thích
7,688
Giới tính
Nam
Nghề nghiệp
Kế Toán
Mình không biết cách thiết lập như thế nào để nhận được mã KeyAscii của các phím chức năng như Enter, Tab, phím di chuyển v.v...trong event KeyPress trên Form viết bằng VBA (Excel) trước khi VBA thực hiện chức năng của phím (Như di chuyển chẳng hạn).Ai biết chỉ giùm với, cám ơn nha.
 
Có hai trường hợp nếu bạn chỉ dùng form để thông báo thôi thì có thể dùng code sau:
Mã:
 Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then '... End If End Sub
Nhưng nếu code nhập liệu thì bạn phải KeyPress chúng trên tất cả các Object luôn như Commandbutton, laybel,...
Mã:
 Private Sub CommandButton1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii = 13 Then '... End If End Sub
Nếu bạn muốn biết mã Ascii của các phím thì vào Help -> Microsoft VB Help (F1) -> nhập từ khóa là (Key Ascii) thì sẽ hiện ra danh sách các phím và mã số tương ứng cho bạn chọn.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhưng bạn thử lại xem trong event đâu có nhận được.Bạn xen file mình gửi có đúng vậy không. Cám ơn bạn quan tâm.
 
Upvote 0
Mình load lại File, không hiểu sao mình load file hay bị lỗi quá
 

File đính kèm

  • Sealand.xls
    28 KB · Đọc: 54
Upvote 0
Mình không biết cách thiết lập như thế nào để nhận được mã KeyAscii của các phím chức năng như Enter, Tab, phím di chuyển v.v...trong event KeyPress trên Form viết bằng VBA (Excel) trước khi VBA thực hiện chức năng của phím (Như di chuyển chẳng hạn).Ai biết chỉ giùm với, cám ơn nha.

KeyPress không nhận phím Enter, bạn phải chuyển sang sự kiện KeyDown:
Mã:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
  ......
  ......
End If
End Sub
 
Upvote 0
Cám ơn phamduylong, mình cũng thấy trong VBA các điều khiển kèm theo MS Office sẽ không nhận được mã Ascii trong Event KeyPress mà chỉ lấy Code từ KeyDown hay KeyUp. Nhưng nếu các Control khác như FlexGrid chẳng hạn thì vẫn nhận bình thường KeyAscii.
 
Upvote 0
Chức năng của KeyAscii đây (sưu tầm):

Key Codes
=========
Constant Value Description
vbKeyLButton 1 Left mouse button
vbKeyRButton 2 Right mouse button
vbKeyCancel 3 CANCEL key
vbKeyMButton 4 Middle mouse button
vbKeyBack 8 BACKSPACE key
vbKeyTab 9 TAB key
vbKeyClear 12 CLEAR key
vbKeyReturn 13 ENTER key
vbKeyShift 16 SHIFT key
vbKeyControl 17 CTRL key
vbKeyMenu 18 MENU key
vbKeyPause 19 PAUSE key
vbKeyCapital 20 CAPS lock key
vbKeyEscape 27 ESC key
vbKeySpace 32 SPACEBAR key
vbKeyPageUp 33 PAGE UP key
vbKeyPageDown 34 PAGE DOWN key
vbKeyEnd 35 END key
vbKeyHome 36 HOME key
vbKeyLeft 37 LEFT ARROW key
vbKeyUp 38 UP ARROW key
vbKeyRight 39 RIGHT ARROW key
vbKeyDown 40 DOWN ARROW key
vbKeySelect 41 SELECT key
vbKeyPrint 42 print SCREEN key
vbKeyExecute 43 EXECUTE key
vbKeySnapshot 44 SNAPSHOT key
vbKeyInsert 45 INS key
vbKeyDelete 46 DEL key
vbKeyHelp 47 HELP key
vbKeyNumlock 144 NUM lock key

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

Key0 Through Key9 Are the Same as Their ASCII Equivalents: '0' Through '9
=========================================================================
Constant Value Description
vbKey0 48 0 key
vbKey1 49 1 key
vbKey2 50 2 key
vbKey3 51 3 key
vbKey4 52 4 key
vbKey5 53 5 key
vbKey6 54 6 key
vbKey7 55 7 key
vbKey8 56 8 key
vbKey9 57 9 key

Keys on the Numeric Keypad
==========================
Constant Value Description
vbKeyNumpad0 96 0 key
vbKeyNumpad1 97 1 key
vbKeyNumpad2 98 2 key
vbKeyNumpad3 99 3 key
vbKeyNumpad4 100 4 key
vbKeyNumpad5 101 5 key
vbKeyNumpad6 102 6 key
vbKeyNumpad7 103 7 key
vbKeyNumpad8 104 8 key
vbKeyNumpad9 105 9 key
vbKeyMultiply 106 MULTIPLICATION SIGN (*) key
vbKeyAdd 107 PLUS SIGN (+) key
vbKeySeparator 108 ENTER (keypad) key
vbKeySubtract 109 MINUS SIGN (-) key
vbKeyDecimal 110 DECIMAL POINT(.) key
vbKeyDivide 111 DIVISION SIGN (/) key

Function Keys
=============
Constant Value Description
vbKeyF1 112 F1 key
vbKeyF2 113 F2 key
vbKeyF3 114 F3 key
vbKeyF4 115 F4 key
vbKeyF5 116 F5 key
vbKeyF6 117 F6 key
vbKeyF7 118 F7 key
vbKeyF8 119 F8 key
vbKeyF9 120 F9 key
vbKeyF10 121 F10 key
vbKeyF11 122 F11 key
vbKeyF12 123 F12 key
vbKeyF13 124 F13 key
vbKeyF14 125 F14 key
vbKeyF15 126 F15 key
vbKeyF16 127 F16 key
 
Upvote 0
Chức năng của KeyAscii đây (sưu tầm):

Key Codes
=========
Constant Value Description
vbKeyLButton 1 Left mouse button
vbKeyRButton 2 Right mouse button
vbKeyCancel 3 CANCEL key
vbKeyMButton 4 Middle mouse button
vbKeyBack 8 BACKSPACE key
vbKeyTab 9 TAB key
vbKeyClear 12 CLEAR key
vbKeyReturn 13 ENTER key
vbKeyShift 16 SHIFT key
vbKeyControl 17 CTRL key
vbKeyMenu 18 MENU key
vbKeyPause 19 PAUSE key
vbKeyCapital 20 CAPS lock key
vbKeyEscape 27 ESC key
vbKeySpace 32 SPACEBAR key
vbKeyPageUp 33 PAGE UP key
vbKeyPageDown 34 PAGE DOWN key
vbKeyEnd 35 END key
vbKeyHome 36 HOME key
vbKeyLeft 37 LEFT ARROW key
vbKeyUp 38 UP ARROW key
vbKeyRight 39 RIGHT ARROW key
vbKeyDown 40 DOWN ARROW key
vbKeySelect 41 SELECT key
vbKeyPrint 42 print SCREEN key
vbKeyExecute 43 EXECUTE key
vbKeySnapshot 44 SNAPSHOT key
vbKeyInsert 45 INS key
vbKeyDelete 46 DEL key
vbKeyHelp 47 HELP key
vbKeyNumlock 144 NUM lock key

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

Key0 Through Key9 Are the Same as Their ASCII Equivalents: '0' Through '9
=========================================================================
Constant Value Description
vbKey0 48 0 key
vbKey1 49 1 key
vbKey2 50 2 key
vbKey3 51 3 key
vbKey4 52 4 key
vbKey5 53 5 key
vbKey6 54 6 key
vbKey7 55 7 key
vbKey8 56 8 key
vbKey9 57 9 key

Keys on the Numeric Keypad
==========================
Constant Value Description
vbKeyNumpad0 96 0 key
vbKeyNumpad1 97 1 key
vbKeyNumpad2 98 2 key
vbKeyNumpad3 99 3 key
vbKeyNumpad4 100 4 key
vbKeyNumpad5 101 5 key
vbKeyNumpad6 102 6 key
vbKeyNumpad7 103 7 key
vbKeyNumpad8 104 8 key
vbKeyNumpad9 105 9 key
vbKeyMultiply 106 MULTIPLICATION SIGN (*) key
vbKeyAdd 107 PLUS SIGN (+) key
vbKeySeparator 108 ENTER (keypad) key
vbKeySubtract 109 MINUS SIGN (-) key
vbKeyDecimal 110 DECIMAL POINT(.) key
vbKeyDivide 111 DIVISION SIGN (/) key

Function Keys
=============
Constant Value Description
vbKeyF1 112 F1 key
vbKeyF2 113 F2 key
vbKeyF3 114 F3 key
vbKeyF4 115 F4 key
vbKeyF5 116 F5 key
vbKeyF6 117 F6 key
vbKeyF7 118 F7 key
vbKeyF8 119 F8 key
vbKeyF9 120 F9 key
vbKeyF10 121 F10 key
vbKeyF11 122 F11 key
vbKeyF12 123 F12 key
vbKeyF13 124 F13 key
vbKeyF14 125 F14 key
vbKeyF15 126 F15 key
vbKeyF16 127 F16 key
Cho em hỏi dấu chấm thập phân thì số mấy ạ?
Em thử số 110 nhưng không được ạ, không biết có đúng không!
 
Upvote 0
Vậy nhờ anh chỉ giáo tiếp, em biết vbKeyDecimal có mã 110 còn mã 190 em không biết.
À ý tôi khác. Chủ đề bàn về KeyAscii (Nhận mã KeyAscii trên form) mà 110 và 190 là KeyCode của dấu chấm ở bàn phím số và bàn phím thường, vậy không là KeyAscii. Thế thôi.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom