Muchas gracias el_chente23 por tu ayuda..
Lo probé y gracias a tu ayuda lo cambié a este otro para que Text1.text no sea sólo igual a p.
Private letra As String
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
letra = ""
If KeyCode = 46 Then
letra = "p"
KeyCode = 0 'así no tiene que borrar el carácter
End If
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If Len(letra) > 0 Then
Text1.Text = Left(Text1, Text1.SelStart) _
+ "p" _
+ Right(Text1.Text, Len(Text1) - Text1.SelStart - 1)
End If
End Sub
Casualidad de la vida, después un colega me indicó otro código mucho más sencillo y creo que es menos lioso y el más adecuado:
If KeyCode = vbKeyDelete Then
KeyCode = 0 ' Anular el delete
SendKeys "{p}" ' Simular el tecleo de la p
End if
Gracias