How to get CAPS to appear at bottom of screen?

  • Thread starter disenchantedstar
  • Start date
D

disenchantedstar

Am using a wireless keyboard and would like to know when caps is on or off in
WORD. I notice that it appears in excel as well as NUM for number lock. I'm
working in Windows XP.
 
D

Dave Peterson

You may find that you get a better answer in an MSWord newsgroup.

(or just look at the light on the keyboard. I didn't see an indicator in
MSWord.)
 
D

David McRitchie

Just remove the key, then if it does get invoked which shouldn't happen, but at least it
will happen less frequently. and you can then use a match stick sized tool
to restore it to non Caps.

--
 
P

Peo Sjoblom

I believe wireless keyboards has removed that light to conserve energy

--
Peo



Portland, Oregon
 
J

John James

Great suggestion, David!!!

Caps lock should be as inaccessible as scroll lock. I'm sick of
"shouting" for most of a sentence just because I INADVERTENTLY TOUCHED
IT WHEN REACHING FOR THE SHIFT KEY. Drat ... did it again.

Can the caps lock be disabled in Excel or used for some other purpose?
Is there some utility which enables this?
 
D

Dave Peterson

I've saved this from other posts--it includes other stuff, but also the
capslock.

Option Explicit
' Code from "VBA Developer's Handbook" (Sybex, 1997):
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) _
As Integer
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) _
As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) _
As Long
Function GetCapslock() As Boolean
' Return or set the Capslock toggle
GetCapslock = CBool(GetKeyState(vbKeyCapital) And 1)
End Function
Function GetNumlock() As Boolean
' Return or set the Numlock toggle.
GetNumlock = CBool(GetKeyState(vbKeyNumlock) And 1)
End Function
Sub SetCapslock(Value As Boolean)
' Return or set the Capslock toggle.
Call SetKeyState(vbKeyCapital, Value)
End Sub
Sub SetNumlock(Value As Boolean)
' Return or set the Numlock toggle.
Call SetKeyState(vbKeyNumlock, Value)
End Sub
Private Sub SetKeyState(intKey As Integer, fTurnOn As Boolean)
Dim abytBuffer(0 To 255) As Byte
GetKeyboardState abytBuffer(0)
abytBuffer(intKey) = CByte(Abs(fTurnOn))
SetKeyboardState abytBuffer(0)
End Sub
Sub Caps_on()
If GetCapslock = False Then Call SetKeyState(vbKeyCapital, True)
End Sub
Sub Caps_Off()
If GetCapslock = True Then Call SetKeyState(vbKeyCapital, False)
End Sub
Sub auto_open()
Application.OnKey "{CAPSLOCK}", "TurnItOff"
End Sub
Sub auto_close()
Application.OnKey "{CAPSLOCK}"
End Sub
Sub TurnItOff()
If GetCapslock = True Then
Call SetKeyState(vbKeyCapital, False)
Beep
End If
End Sub

If you create a workbook with this code in it, then the auto_open procedure will
run and turn off the capslock whenever you click it.

If the OP is new to macros, then the OP can read David McRitchie's intro at:
http://www.mvps.org/dmcritchie/excel/getstarted.htm

ps. There's another option you may like better (I would).

Go to windows control panel|Accessibility options|keyboard tab
Turn on the ToggleKeys option.

You'll hear a beep when you hit capslock, numlock, or scrolllock.
 
J

John James

Dave, you're a champ!!

This is a great solution. As long as there is sufficient volume, thi
seems to work in all circumstances in all applications. Solve
disenchantedstar's wireless keyboard CAPS LOCK problem and my separat
problem as well. This option should be activated by default on window
installation, but that's another issue.

Many thanks
 
D

Dave Peterson

It's one of the first things I do when I (try to) help someone--whether they
want it or not!
 
J

John James

Thanks Dave.

After installation & changing the annoying "clear" sound (attached to
the delete key) to delete.wav, the sounds were non-invasive &
appropriate. I can continue on my clumsy way now with some comfort.

Cheers,
 
Top