Nota: dedicado a Rafael Andrada – McPegasus-
Una de las funciones más peligrosas de VBA es la función SendKeys. Según la ayuda de Microsoft, emula la pulsación de teclas en la ventana activa.
El peligro radica en determinar la ventana activa ya que podemos mandar pulsaciones por error a la ventana equivocada.
Además se produce un desagradable efecto colateral cuando se utiliza: la tecla del bloqueo numérico va alternando su valor.
Para evitar ese efecto podemos utilizar la librería Windows Scripting Host. En este código de ejemplo no es necesario referenciar la librería puesto que se declara como Object.
Function fSendKeys(strKey as String)
Dim ws As Object
Set ws = CreateObject("WScript.shell")
ws.SendKeys strKey
Set ws = Nothing
End Function
La utilización de esa función es exactamente igual que la función SendKeys nativa (hasta dónde a mi me consta). En los enlaces se puede consultar la lista de strings admisibles como argumento strKey.
Link a la ayuda de SendKeys (VBA)
Link a la ayuda de SendKeys (WSH)
Deja un comentario si te gustó
0 comentarios