NumLock-Taste per VBA setzen

Nur für 32Bit Office Versionen

Problemstellung:

Wie kann ich mittels VBA die NumLock-Taste ein- bzw. ausschalten?

Code in ein neues öffentliches Modul kopieren:

 

Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_EXTENDEDKEY = &H1
Private Const KEYEVENTF_KEYUP = &H2
 
Private Declare Sub keybd_event Lib "user32" _
     (ByVal bVk As Byte, _
     ByVal bScan As Byte, _
     ByVal dwflags As Long, _
     ByVal dwExtraInfo As Long)
 
Private Declare Function GetKeyboardState Lib "user32" _
         (pbKeyState As Byte) As Long
 
Private Declare Function SetKeyboardState Lib "user32" _
         (lppbKeyState As Byte) As Long
 
Function SetNumLock(bStatus As Boolean) As Boolean
   Dim R As Variant
   Dim NumLockOn As Boolean
   Dim KeyTable(0 To 255) As Byte
 
  R = GetKeyboardState(KeyTable(0))
   NumLockOn = (KeyTable(VK_NUMLOCK) <> 0)
 
  If (bStatus And Not NumLockOn) Or _
               (Not bStatus And NumLockOn) Then
       keybd_event VK_NUMLOCK, _
       &H45, _
       KEYEVENTF_EXTENDEDKEY Or 0, 0
       keybd_event VK_NUMLOCK, _
       &H45, _
       KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
   End If
End Function

 

Aufruf:

 

SetNumLock False

 

würde die NumLock-Taste ausschalten

 

SetNumLock True

 

würde die NumLock-Taste einschalten

 

Wir verwenden Cookies

Wir verwenden Cookies, um Ihr Surferlebnis zu verbessern und den Website-Verkehr zu analysieren. Bitte wählen Sie aus, welchen Cookie-Kategorien Sie zustimmen möchten.