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

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.
 
R

Rick Rothstein

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
 
S

Steve

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.
 
S

SteveM

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top