He encontrado este código dentro de el foro. Esta parte de código la pones en un módulo:
Declare Sub GetKeyboardState Lib "user32" (lpKeyState As Any)
Declare Sub SetKeyboardState Lib "user32" (lpKeyState As Any)
Public Const VK_CAPITAL = &H14
Public Const VK_NUMLOCK = &H90
Esta otra parte la pones en un boton dentro de un formulario:
Private Sub Command1_Click()
ReDim KeyboardBuffer(256) As Byte
GetKeyboardState KeyboardBuffer(0)
'Este ejemplo muestra como pulsar el Caps Lock. Si quiere que presione el Num Lock, sustituya los VK_CAPITAL por VK_NUMLOCK
If KeyboardBuffer(vbKeyCapital) And 1 Then
KeyboardBuffer(vbKeyCapital) = 0
MsgBox "Estoy en mayusculas"
Else
KeyboardBuffer(vbKeyCapital) = 1
MsgBox "estoy en minusculas"
End If
SetKeyboardState KeyboardBuffer(0)
End Sub
Cuando ejecutas la aplicación detecta el estado del bloque de mayúsculas (activado y desactivado).
Espero te sirva. Saludos Pola