Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NumLock door een macro aan laten zetten!?

143 views
Skip to first unread message

Ernest de Vroome

unread,
Dec 29, 2008, 3:14:02 PM12/29/08
to
Hoi. Voor een bepaald invoerprogramma zou het erg handig zijn als bij aanvang
door dat programma zèlf de NumLock toets 'aangezet' zou worden om
vergissingen te voorkomen. Nu weet ik dat commando niet maar het zou zoiets
moeten zijn als:

Private Sub Workbook_Open()
Application.NumLock = True
End Sub

Bovenstaande werkt dus niet, maar zo zie je wel wat ik bedoel. Is er een
methode om bovenstaande te bewerkstelligen? Bij voorbaat dank, Ernest

Wigi

unread,
Dec 29, 2008, 3:31:01 PM12/29/08
to
Gewoon googlen en je hebt het:

http://www.ozgrid.com/forum/showthread.php?t=13239

Dit is door te googlen op: excel vba turn numlock on

--
Wigi
http://www.wimgielis.be = Excel/VBA, soccer and music

jan

unread,
Dec 30, 2008, 11:57:54 AM12/30/08
to
Ernest,

In de module van je werkmap zet je

Private Sub Workbook_Open()
SetNumLock True
End Sub

en in een algemene module plaats je dit:

Public Declare Function GetKeyState Lib "user32" _
(ByVal nVirtKey As Long) As Integer
Public Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
Public Const VK_NUMLOCK = &H90

Sub SetNumLock(blnAan As Boolean)
If CBool(GetKeyState(VK_NUMLOCK)) = Not blnAan Then
keybd_event VK_NUMLOCK, 0, _
KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_NUMLOCK, 0, _
KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
End If
End Sub


Dan zou bij het openen van je werkmap NUMLOCK moeten worden aangezet.

Jan


Ernest de Vroome

unread,
Dec 31, 2008, 3:22:00 PM12/31/08
to
Beste Jan, perfect, het werkt. Andere antwoorden werkten ook wel, maar waren
vaak erg ingewikkeld; je geeft hier alleen het hoogstnoodzakelijke.
Belangrijk is dat ik nu met het commando 'SetNumLock True' waar dan ook in de
macro kan opnemen dat die NumLock op aan moet, mocht een gebruiker hem
'onderweg' uit hebben willen zetten. Met groet, Ernest

"jan" schreef:

0 new messages