View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.misc
Dave Peterson
 
Posts: n/a
Default How to get CAPS to appear at bottom of screen?

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.


John James wrote:

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?

David McRitchie Wrote:
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.


--
John James
------------------------------------------------------------------------
John James's Profile: http://www.excelforum.com/member.php...o&userid=32690
View this thread: http://www.excelforum.com/showthread...hreadid=529440


--

Dave Peterson