vba窗体中的KeyDown、 KeyUp、KeyPress键盘事件中的键盘码如何查找?

vba窗体中的很多控件可以响应键盘事件。

vba窗体中的键盘事件分别有KeyDown KeyUpKeyPress3种。

这3种事件的语法如下:

Private Subobject KeyDown( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

Private Subobject _KeyUp( ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)

Private Subobject _KeyPress( ByVal KeyANSI As MSForms.ReturnInteger)

它们都有一个参数代表按键的代码。

但是在书写代码时,我们往往无法获悉我们要表达的按键对应的这个参数的值是多少,查找帮助文档也没有列举出所有的按键对应的按键码的数值。

这里介绍两种方法:

方法一、在对象浏览器中先查找对应的按键码

单击F2,在对象浏览器中选择”VBA”库,找到KeyCodeConstants,如下图所示:

方法二、在写代码中直接用VBA.KeyCodeConstants中列出。

如下所示:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = VBA.KeyCodeConstants.vbKey0 Then
        MsgBox "您按下了数字0"
   End If
End Sub

通过上述两种方法都可以快速地获取想要的按键对应的按键码的值。

       

发表评论