Aunque puede ser una chapuza se me ocurre que crees una especie de keylogger que capte lo que escribas con el tecledo en una variable y si se llega a crear alguna palabra que reaccione de algún modo.
Para capturar las teclas pulsadas puedes usar esto:
Dim KeyCode As Integer, Written As String
Do
DoEvents
For KeyCode = 8 To 255
If GetAsyncKeyState(KeyCode) = -32767 Then 'Si la tecla está pulsada retornará el valor -32767
Select Case KeyCode
' carácteres según ASCII
Case 32
Written = Written & " "
'Números (48-57)
Case 48
If GetShift = True Then
Written = Written & "="
Else: Written = Written & "0"
End If
Case 49
If GetShift = True Then
Written = Written & "!"
Else: Written = Written & "1"
End If
Case 50
If GetShift = True Then
Written = Written & "''"
Else: Written = Written & "2"
End If
Case 51
If GetShift = True Then
Written = Written & "·"
Else: Written = Written & "3"
End If
Case 52
If GetShift = True Then
Written = Written & "$"
Else: Written = Written & "4"
End If
Case 53
If GetShift = True Then
Written = Written & "%"
Else: Written = Written & "5"
End If
Case 54
If GetShift = True Then
Written = Written & "&"
Else: Written = Written & "6"
End If
Case 55
If GetShift = True Then
Written = Written & "/"
Else: Written = Written & "7"
End If
Case 56
If GetShift = True Then
Written = Written & "("
Else: Written = Written & "8"
End If
Case 57
If GetShift = True Then
Written = Written & ")"
Else: Written = Written & "9"
End If
'Letras (65-90)
Case 65 To 90
If GetShift = True Then
Written = Written & UCase(Chr$(KeyCode))
Else: Written = Written & LCase(Chr$(KeyCode))
End If
Case 188 'Koma
If GetShift = True Then
Written = Written & ";"
Else: Written = Written & ","
End If
Case 190 'Punto
Written = Written & "."
Case 192
If GetShift = True Then 'ñ
Written = Written & "Ñ"
Else: Written = Written & "ñ"
End If
Case 219 '?
If GetShift = True Then
Written = Written & "?"
Else: Written = Written & "'"
End If
Case 221 '¿
If GetShift = True Then
Written = Written & "¿"
Else: Written = Written & "¡"
End If
End Select
Next KeyCode
DoEvents
Loop
Lo que hace es comprobar una a una si las teclas están pulsadas pero lo hace infinitesimalmente rápido, aunque escribas muuy rápido te las caza todas. Así puedes ir creando una variable (Written) y añadir la sentencia una sentencia If InStr:
If InStr(1, Written, "fiesta", 1) ' Comparamos los strings para ver si coinciden en algún trozo, si es así nos devolvera la posición donde empieza, y si no está en el string nos devolvera 0. Así vas comparando el string Written por cada letra que se escribe (por cada vez que se cumple la sentencia de GetAssyncKeyState, debajo de él). If Not InStr(1, Written, "fiesta", 1) = 0 Then [tooltiptext].
y te recomendaría crear también una sentencia para vaciar la variable written. If Len(Written) > 200 Then Written = "".
Es lo único que se me ha ocurrido, quiza sea algo parecido lo que hacen los de microsoft para que el visual responda al escribir palabras clave
, comenta algo si te funciona o no.
Salu10