Can macro type "vbKeyNumpad5" into a cell - to check for NumLock o

  • Thread starter Thread starter Steve
  • Start date Start date
S

Steve

I've seen the programming test for NumLock and it appears pretty complicated.
Would it be possible for a macro to simulate pressing the 5 key on the
number pad to see what the result is? If you get a 5, NumLock would be on,
if you get nothing, NumLock would be off.

I have tried this with SendKeys and all I get is 101 > the code for the key.
 
I'm not sure what code you looked at, but I don't think the test for the
NumLock being on or off is *that* complicated. Copy/paste this code into a
Module (Insert/Module from the VB editor's menu bar)...

' *************** START OF CODE ***************
Private Declare Function GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As Long

Private Const VK_NUMLOCK = &H90

Public Function IsNumLockOn() As Boolean
Dim bytKeys(255) As Byte
GetKeyboardState bytKeys(0)
IsNumLockOn = bytKeys(VK_NUMLOCK)
End Function
' *************** END OF CODE ***************

To use it, simple call the IsNumLockOn function... it will return True if
the NumLock is on and False if it is not on.

If IsNumLockOn Then
MsgBox "The NumLock is on!"
Else
MsgBox "The NumLock is not on."
End If
 
What I found was on the Microsoft site and the programming appeared to be at
least one page long. I'll try what you gave me - Thanks.
 
I pasted your code in and added this to my programming>

If Not IsNumLockOn Then
SendKeys "{numlock}", True
DoEvents
End If

But nothing happens (it doesn't turn NumLock back on). Does it make a
difference that I am using Excel 2003?

I am using this because I am doing a lot of interaction with another
non-Office program using SendKeys, and occasionally it turns off the NumLock,
even using DoEvents.
 
Back
Top