Hola, Manuel.
Existe un método distinto para reconocer las teclas pulsadas en un formulario que permite prescindir de la creación de un menú invisible, como ha comentado Gustavo en su anterior mensaje.
Es muy sencillo. Aquí te cuento:
Antes de todo, deberás establecer la propiedad KeyPreview a True del formulario en cuestión.
Ahora, tan solo falta escribir el siguiente código como evento KeyDown del formulario:
'--------------------------
'CÓDIGO
'--------------------------
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
MsgBox "Inserta aquí el código para llamar a la ayuda.", vbInformation + vbOKOnly, "Ayuda"
End If
End Sub
'-------------------------
'CÓDIGO
'-------------------------
Ahora prueba a añadir cualquier control (más de uno, si quieres) en el formulario y pulsa la tecla F1. El foco de la tecla pulsada lo tendrá siempre el formulario antes que los controles del mismo y, consecuentemente, se mostrará la MsgBox que se declara en el código.
Así, si cambias la constante vbKeyF1 por otra distinta, la MsgBox declarada aparecerá cuando se pulse la tecla respectiva a esa constante.
Ahora tan solo hará falta cambiar el código de la MsgBox por una llamada a la Ayuda del programa.
Espero que te haya ayudado.
Hasta otra,
Zoto