Saved from a old post
You can use Onkey (see VBA Help)
Try this two macro's
Sub UIT()
Dim K, Key, Key2, i As Integer
On Error Resume Next
For Each Key In Array("+", "^", "%", "+^", "+%", "^%", "+^%")
K = Array("{BS}", "{BREAK}", "{CAPSLOCK}", "{CLEAR}", "{DEL}", _
"{DOWN}", "{END}", "{ENTER}", "~", "{ESC}", "{HELP}", "{HOME}", _
"{INSERT}", "{LEFT}", "{NUMLOCK}", "{PGDN}", "{PGUP}", _
"{RETURN}", "{RIGHT}", "{SCROLLLOCK}", "{TAB}", "{UP}")
For Each Key2 In K
Application.OnKey Key & Key2, ""
Next Key2
For i = 0 To 255
Application.OnKey Key & Chr$(i), ""
Next i
For i = 1 To 15
Application.OnKey Key & "{F" & i & "}", ""
Application.OnKey "{F" & i & "}", ""
Next i
Next
Application.OnKey "{PGDN}", ""
Application.OnKey "{PGUP}", ""
End Sub
Sub AAN()
Dim K, Key, Key2, i As Integer
On Error Resume Next
For Each Key In Array("+", "^", "%", "+^", "+%", "^%", "+^%")
K = Array("{BS}", "{BREAK}", "{CAPSLOCK}", "{CLEAR}", "{DEL}", _
"{DOWN}", "{END}", "{ENTER}", "~", "{ESC}", "{HELP}", "{HOME}", _
"{INSERT}", "{LEFT}", "{NUMLOCK}", "{PGDN}", "{PGUP}", _
"{RETURN}", "{RIGHT}", "{SCROLLLOCK}", "{TAB}", "{UP}")
For Each Key2 In K
Application.OnKey Key & Key2
Next Key2
For i = 0 To 255
Application.OnKey Key & Chr$(i)
Next i
For i = 1 To 15
Application.OnKey Key & "{F" & i & "}"
Application.OnKey "{F" & i & "}"
Next i
Next
Application.OnKey "{PGDN}"
Application.OnKey "{PGUP}"
End Sub