ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Can macro type "vbKeyNumpad5" into a cell - to check for NumLock o (https://www.excelbanter.com/excel-programming/432418-can-macro-type-vbkeynumpad5-into-cell-check-numlock-o.html)

Steve

Can macro type "vbKeyNumpad5" into a cell - to check for NumLock o
 
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.

Rick Rothstein

Can macro type "vbKeyNumpad5" into a cell - to check for NumLock o
 
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

--
Rick (MVP - Excel)


"Steve" wrote in message
...
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.



Steve

Can macro type "vbKeyNumpad5" into a cell - to check for NumLo
 
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.

"Rick Rothstein" wrote:

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

--
Rick (MVP - Excel)


"Steve" wrote in message
...
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.




stevem

Can macro type "vbKeyNumpad5" into a cell - to check for NumLo
 
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.

"Rick Rothstein" wrote:

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

--
Rick (MVP - Excel)


"Steve" wrote in message
...
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.





All times are GMT +1. The time now is 03:35 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com