VBA SendKeys – Enviar Pulsaciones de Teclas

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 7, 2022

VBA SendKeys

El método SendKeys de VBA se utiliza para enviar pulsaciones de teclas a la aplicación activa:

Application.SendKeys ("s")

El código anterior imitará la pulsación de la tecla «s» del teclado. El método SendKeys toma dos argumentos:

  • Keys – La(s) clave(s) que desea enviar a la aplicación como texto.
  • Wait  (Opcional) – Este valor puede ser Verdadero o Falso. Si es True, Excel espera a que se procesen primero las teclas antes de ejecutar la siguiente línea de código. Si es Falso, Excel continúa ejecutando el procedimiento sin esperar a que se procesen las claves.

SendKeys se utiliza normalmente cuando se interactúa con otras aplicaciones porque es una forma rápida y fácil de realizar tareas. Por ejemplo, puede utilizar SendKeys al automatizar Internet Explorer. Sin embargo, debe ser extremadamente cuidadoso cuando utilice el método SendKeys ya que puede tener resultados inesperados. Recomendamos utilizar SendKeys sólo como último recurso y/o cuando los errores son tolerables (o fácilmente detectables)

Ejemplos de SendKeys en VBA

Cada tecla en términos de letras está representada por su carácter, por ejemplo a es «a». Si desea utilizar teclas en combinación con Ctrl, Shift o Alt entonces tiene que preceder el código de la tecla con lo siguiente:

Clave Código
Ctrl ^
Mayúsculas +
Alt %

El siguiente código utiliza el método SendKeys para guardar el libro de trabajo:

Sub UsandoSendKeys()

Application.SendKeys ("^s")

End Sub

Como mencionamos antes, necesitas ser extremadamente cuidadoso cuando uses SendKeys. El siguiente código especifica un tiempo de espera de 10 segundos antes de que el texto sea ingresado/enviado al Bloc de Notas. Al esperar 10 segundos, le das al Bloc de Notas la oportunidad de abrirse correctamente, reduciendo la posibilidad de un error.

Nota: Este código utiliza el método Application.Wait.

Sub UsandoSendKeysConWait()

Call Shell("C:\Windows\system32\Notepad.Exe", vbNormalFocus)
Application.Wait (Now() + TimeValue("00:00:10"))
Call SendKeys("Esto es algo de texto", True)

End Sub

El resultado después de 10 segundos de espera es:

Usando SendKeys con Wait

 

SendKeys puede ser una forma extremadamente rápida y sencilla de realizar tareas. Sin embargo, los riesgos de error son relativamente altos. Utilice SendKeys sólo cuando ese riesgo sea aceptable

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples