
 Hola:
Pues bien hace poco hice este código a ver que les parece. 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Label1 = KeyCode
Label2 = "Se Conoce Como: " & TeclaPresionada(KeyCode)
End Sub
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Private Function TeclaPresionada(Tecla As Integer) As String
Select Case Tecla
  Case 8: TeclaPresionada = "Retroceso"
  Case 9: TeclaPresionada = "Tab"
  Case 13: TeclaPresionada = "Entrada"
  Case 16: TeclaPresionada = "Shift"
  Case 17: TeclaPresionada = "Control"
  Case 18: TeclaPresionada = "Alt"
  Case 19: TeclaPresionada = "Pausa"
  Case 20: TeclaPresionada = "Mayus"
  Case 23: TeclaPresionada = "Entrada"
  Case 27: TeclaPresionada = "Escape"
  Case 32: TeclaPresionada = "Barra Espaciadora"
  Case 33: TeclaPresionada = "Re Pag"
  Case 34: TeclaPresionada = "Av PAg"
  Case 35: TeclaPresionada = "Fin"
  Case 36: TeclaPresionada = "Shift"
  Case 37: TeclaPresionada = "Flecha Izq"
  Case 38: TeclaPresionada = "Flecha Arriba"
  Case 39: TeclaPresionada = "Flecha Der"
  Case 40: TeclaPresionada = "Flecha Abajo"
  Case 45: TeclaPresionada = "Insert"
  Case 46: TeclaPresionada = "Supr"
  Case 48 To 57: TeclaPresionada = AbNumero(Tecla - 47)
  Case 65 To 90: TeclaPresionada = ABCDario(Tecla - 64, AbMayus)
  Case 91, 92: TeclaPresionada = "Windows"
  Case 96 To 105: TeclaPresionada = AbNumero(Tecla - 95) & " Tec Numerico"
  Case 106: TeclaPresionada = "*"
  Case 107: TeclaPresionada = "+"
  Case 109: TeclaPresionada = "-"
  Case 110: TeclaPresionada = "."
  Case 111: TeclaPresionada = "÷"
  Case 112 To 123: TeclaPresionada = "F" & Tecla - 111
  Case 144: TeclaPresionada = "Bloq Num"
   Case 144: TeclaPresionada = "Bloq Despl"
  Case 186 To 192: TeclaPresionada = AbEspecial(Tecla - 185)
  Case 219: TeclaPresionada = "?"
  Case 220: TeclaPresionada = "°"
  Case 221: TeclaPresionada = "¡"
  Case 222: TeclaPresionada = "["
  Case Else: TeclaPresionada = "Desconocido"
End Select
End Function
 ' Y en un módulo peguen lo siguiente
Public Enum AbMinMay
  AbMinus
  AbMayus
End Enum
Public Function ABCDario(AbLetra As Integer, AbMinsMays As AbMinMay) As String
  Dim CadABCMay, CadABCMin As String
CadABCMay = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
CadABCMin = LCase$(CadABCMay)
If AbLetra < 1 Then
MsgBox "AbLetra < 1"
ElseIf AbLetra > 26 Then
MsgBox "AbLetra < 26"
Else
  Select Case AbMinsMays
  Case AbMayus:  ABCDario = Mid(CadABCMay, AbLetra, 1)
  Case AbMinus:  ABCDario = Mid(CadABCMin, AbLetra, 1)
  End Select
End If
End Function
Public Function AbNumero(AbNum As Integer) As String
  Dim CadNum As String
CadNum = "0123456789"
If AbNum < 1 Or AbNum > 10 Then
MsgBox "La cadena de AbNum debe ser entre 1 y 10"
Else
AbNumero = Mid(CadNum, AbNum, 1)
End If
End Function
Public Function AbEspecial(AbNum As Integer) As String
  Dim CadNum As String
CadNum = "´+;-:}Ñ"
If AbNum < 1 Or AbNum > 7 Then
MsgBox "La cadena de AbNum debe ser entre 1 y 7"
Else
AbEspecial = Mid(CadNum, AbNum, 1)
End If
End Function
' Saludos 
