2024年3月27日发(作者:)

VBA中检测键盘控制键(Shift Control Alt)状态

来源:水文工具集分类:代码, 博客标签:VBA

VBA编写的程序中,经常需要提供一些功能键或者快捷键或者是辅助键,比如

Shift|Control|Alt,以方便用户更方便使用你的程序。VBA中并没有相关函数来完成检测

键盘控制键状态的函数,因此,必须使用Windows API函数GetKeyState。GetKeyState

函数会返回某个指定按键的状态(按下或者未按下)。水文工具集提供VBA编写的3个相关

函数,可以方便你在代码中使用,用以完成相关功能。

IsShiftKeyDown:检测Shift控制键状态

IsControlKeyDown:检测Control控制键状态

IsAltKeyDown:检测Alt控制键状态

上面的函数返回True或者False,当指定按键按下时返回True,而未按下时返回False。

函数的定义如下:

Function IsShiftKeyDown( _

LeftOrRightKey As Long = LeftKeyOrRightKey _

03.) As Boolean

04.

Function IsControlKeyDown( _

LeftOrRightKey As Long = LeftKeyOrRightKey _

07.) As Boolean

08.

Function IsAltKeyDown( _

LeftOrRightKey As Long = LeftKeyOrRightKey _

11.) As Boolean

上面的函数都有一个可选的参数来指定是检测只有左边或者只有右边或者两者其一或

者同时按下控制键,默认是左边右边两者其一,具体的可选参数有下面的类型:

Const BothLeftAndRightKeys = 0

2.' BOTH left and right together

Const LeftKey = 1

4.' LEFT key only