vba键盘事件
(2013-12-22 20:50:19)
标签:
excelvba键盘按下那个键响应it |
分类: IT |
如果你确实想在excel中捕捉到键盘事件,例如你想当按下鼠标左键+ctrl时,出现你想要的结果,你需要这样做才可以.
首先在模块中写一段程式,用于判断在按下鼠标左键同时再按下那个ctrl键(键盘),keys()及数字代表的键,已经在下面列出.
Sub 键盘()
Dim keys(0 To 255) As Byte
GetKeyboardState keys(0)
If keys(17) > 127 Then
tx1 = i: tx2 = j
If Range(ar1).Columns.Count > 1 Or Range(ar1).Rows.Count > 1
Or Range(ar2).Columns.Count > 1 Or Range(ar2).Rows.Count > 1
Then tx1 = "": tx2 = ""
If fl = False Then fl = True: 交换单元格.Label1.Caption = ar1 & " =
" & tx1 Else Range(ar1) = j: Range(ar2) = i: fl = False:
交换单元格.Label2.Caption = ar2 & " = " & tx2:
交换单元格.CommandButton1.Caption = "已交换": 交换单元格.CommandButton2.Enabled
= True
End If
End Sub
在工作表改变事件中写下下面程式:
|
Private keycode()括号中的数字为代码,代表=后面的按键 keycode(8)=BackSpace |
| keycode(9)=Tab |
| keycode(12)=Clear |
| keycode(13)=Enter |
| keycode(16)=Shift_L |
| keycode(17)=Control_L |
| keycode(18)=Alt_L |
| keycode(19)=Pause |
| keycode(20)=Caps_Lock |
| keycode(27)=Escape |
| keycode(32)=space |
| keycode(33)=Prior |
| keycode(34)=Next |
| keycode(35)=End |
| keycode(36)=Home |
| keycode(37)=Left |
| keycode(38)=Up |
| keycode(39)=Right |
| keycode(40)=Down |
| keycode(41)=Select |
| keycode(42)=Print |
| keycode(43)=Execute |
| keycode(45)=Insert |
| keycode(46)=Delete |
| keycode(47)=Help |
| keycode(65)=a |
| keycode(66)=b |
| keycode(67)=c |
| keycode(68)=d |
| keycode(69)=e |
| keycode(70)=f |
| keycode(71)=g |
| keycode(72)=h |
| keycode(73)=i |
| keycode(74)=j |
| keycode(75)=k |
| keycode(76)=l |
| keycode(77)=m |
| keycode(78)=n |
| keycode(79)=o |
| keycode(80)=p |
| keycode(81)=q |
| keycode(82)=r |
| keycode(83)=s |
| keycode(84)=t |
| keycode(85)=u |
| keycode(86)=v |
| keycode(87)=w |
| keycode(88)=x |
| keycode(89)=y |
| keycode(90)=z |
| keycode(96)=KP_0 |
| keycode(97)=KP_1 |
| keycode(98)=KP_2 |
| keycode(99)=KP_3 |
| keycode(100)=KP_4 |
| keycode(101)=KP_5 |
| keycode(102)=KP_6 |
| keycode(103)=KP_7 |
| keycode(104)=KP_8 |
| keycode(105)=KP_9 |
| keycode(106)=KP_Multiply |
| keycode(107)=KP_Add |
| keycode(108)=KP_Separator |
| keycode(109)=KP_Subtract |
| keycode(110)=KP_Decimal |
| keycode(111)=KP_Divide |
| keycode(112)=F1 |
| keycode(113)=F2 |
| keycode(114)=F3 |
| keycode(115)=F4 |
| keycode(116)=F5 |
| keycode(117)=F6 |
| keycode(118)=F7 |
| keycode(119)=F8 |
| keycode(120)=F9 |
| keycode(121)=F10 |
| keycode(122)=F11 |
| keycode(123)=F12 |
| keycode(124)=F13 |
| keycode(125)=F14 |
| keycode(126)=F15 |
| keycode(127)=F16 |
| keycode(128)=F17 |
| keycode(129)=F18 |
| keycode(130)=F19 |
| keycode(131)=F20 |
| keycode(132)=F21 |
| keycode(133)=F22 |
| keycode(134)=F23 |
| keycode(135)=F24 |
| keycode(136)=Num_Lock |
| keycode(137)=Scroll_Lock |
| keycode(187)=acute |
| keycode(188)=comma |
| keycode(189)=minus |
| keycode(190)=period |
| keycode(192)=numbersign |
| keycode(210)=plusminus |
| keycode(212)=copyright |
| keycode(213)=guillemotleft |
| keycode(214)=masculine |
| keycode(215)=ae |
| keycode(216)=cent |
| keycode(217)=questiondown |
| keycode(218)=onequarter |
| keycode(220)=less |
| keycode(221)=plus |
| keycode(227)=multiply |
| keycode(228)=acircumflex |
| keycode(229)=ecircumflex |
| keycode(230)=icircumflex |
| keycode(231)=ocircumflex |
| keycode(232)=ucircumflex |
| keycode(233)=ntilde |
| keycode(234)=yacute |
| keycode(235)=oslash |
| keycode(236)=aring |
| keycode(237)=ccedilla |
| keycode(238)=thorn |
| keycode(239)=eth |
| keycode(240)=diaeresis |
| keycode(241)=agrave |
| keycode(242)=egrave |
| keycode(243)=igrave |
| keycode(244)=ograve |
| keycode(245)=ugrave |
| keycode(246)=adiaeresis |
| keycode(247)=ediaeresis |
| keycode(248)=idiaeresis |
| keycode(249)=odiaeresis |
| keycode(250)=udiaeresis |
| keycode(251)=ssharp |
| keycode(252)=asciicircum |
| keycode(254)=Mode_switch |

加载中…