Sendkeys simular pulsaciones de teclas




El método Sendkeys en VBA se utiliza para simular pulsaciones de teclas que deben ser ingresadas manualmente por el usuario en la ventana activa; puede ser usado en una macro para simular la tecla Enter, cualquier otra tecla o combinación de tecla; con este método a los fines de conseguir los resultados esperados, se debe tener especial cuidado que la ventana que queramos manipular esté activa, caso contrario se puede ejecutar un comando no deseados, supongamos que en la ventana activa control + A, realiza una determinada acción y en otra ventana esa misma combinación de teclas realiza otra totalmente distinta, es por ello que se debe tener precaución que la ventana sobre la queramos trabajar este activa al usar el método Sendkeys.

MASTERCARD PAYONEER

Una utilidad por ejemplo del método Sendkeys, es poder enviar a un cuadro de díálogo que solicita una contraseña o password los datos del usuario y contraseña, aquí es necesario llamar primero llamar este método y luego el formulario o cuadro de diálogo que solicita la contraseña.

Si quieres aprender o profundizar  sobre el manejo de hojas de Excel, te recomiendo que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores curso que he visto en internet.

La sintaxis del método Sendkeys es la siguiente:

SendKeys(Keys, Wait)

String: valor requerido, es una expresión de cadena la cual expresa cual es la tecla o combinación de teclas, traducida en pulsaciones, que se desea enviar a la página o ventana activa.

wait: es un argumento opcional se puede omitir y toma el valor Falso o False, es un valor de tipo boolean que indica de modo de espera, es decir si el valor es falso o False, que es el valor predeterminado; indica que el control del procedimiento es devuelto inmediatamente luego de enviar las pulsaciones; en caso contrario es decir Verdadero o True, indica que las pulsaciones se procesan antes de devolver el control al procedimiento.

Para que quede más claro el argumento Wait, si este es verdadero Excel debe esperar que la pulsación de la tecla enviada deben ser procesadas antes de devolver el control a la macro, en caso Falso Excel debe seguir ejecutando la macro sin esperar que se procesen las teclas enviadas.

Con el método Sendkey como se dijo se puede enviar pulsaciones de teclas, cada pulsación en el teclado está representada con una letra para referirse a dicho caracter se usa la letra propiamente dicha, es decir para que se envié  la pulsación de la letra Z, se debe utilizar "Z"  como string, si se quieren agregar más se debe agregar cada caracter en forma seguida, por ejemplo para la letra Z se debe agregar "Z",  si se quiere agregar la letra R, seguidamente la S y luego la T, se debe expresar así "RST".

     

Los siguientes símbolos tienen un significados especial con el método Sendkeys es por ello que se deben encerrar entre llaves{ }; los símbolos son: mas (+); intercalación (^), porcentaje (%) y paréntesis ( ); se debe tener en cuenta que los corchetes [ ] no tienen significado especial para el método Sendkeys, sin embargo se recomienda escribirlos entre llaves, ya que en otras aplicaciones si tiene un significado especial y por ende puede llevar a resultados inesperados; ahora bien si lo que se quiere es especificar el símbolo llave propiamente dicho se debe escribir { {} y { } }.

Si lo que se requiere es enviar una combinación de teclas como SHIFT, MAYÚSCULA, CONTROL y ALT,  se deben introducir delante del código de la tecla algunos de los siguientes códigos:

Tecla               Símbolo
SHIFT (Mayúscula) 
CTRL (Control) ^
ALT  %

Seguramente en varias oportunidades deberemos especificar o simular caracteres que no se muestran al presionar una tecla o teclas que representan una determinada acción como print screen,  lo que se requiere es enviar una combinación de teclas como  MAYÚSCULA, CONTROL y ALT,  se deben introducir delante del código de la tecla algunos de los siguientes códigos:



Tecla Código
Retroceso {BACKSPACE}, {BS}o {BKSP}
Pausa {BREAK}
Bloq Mayús {CAPSLOCK}
Supr {DELETE} o {DEL}
Flecha abajo {DOWN}
Fin {END}
Entrar {ENTER}o ~
Esc {ESC}
Ayuda {HELP}
Inicio {HOME}
Insert {INSERT} o {INS}
Flecha izquierda {LEFT}
Bloq Num {NUMLOCK}
Re Pág {PGDN}
Av Pág {PGUP}
Impr Pant {PRTSC}
Flecha derecha {RIGHT}
Bloq Despl {SCROLLLOCK}
Tab {TAB}
Flecha arriba {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}


Si cualquier combinación de teclas SHIFT, CTRL ó ALT se debe mantener presionada mientras se envían otros caracteres, se requiere agregar el código para estas teclas entre paréntesis, por ejemplo si de desea presionar mayúscula y la letra R y T (es decir R y T mayúsculas), se debe usar "+ (RT)"; ahora si lo que se desea, es presionar la mayúscula y la T solamente en mayúscula y la T en minúscula se debe usar "+RT"; es preciso aclarar que en este último caso no hay paréntesis y las pulsaciones de teclas enviadas serán una R mayúscula y una T minúscula, mientras que usando paréntesis se enviaran pulsaciones de teclas que se interpretan como R y T mayúsculas. 

En el caso que se necesite enviar una repetición de teclas, se puede utilizar (tecla número) debiendo incluir un espacio entre ambos; por ejemplo si se requiere pulsar la tecla flecha a la derecha 100 veces, se puede usar flecha derecha más el número 100, el código quedaría de esta manera: "{Right  100}"; ahora si se lo que se quiere repetir es la tecla A 20 veces el código debería ser: "A 20", lo cual significa que se repetirá 20 veces la pulsación de la tecla o carácter A.

Ahora te mostraré algunos ejemplos de uso del método SendKeys, esto funcionará siempre que la ventana activa sea Excel, ya que si estuviera activa otra ventana los resultados no podrían ser los esperados, esto es lo que se recalca cuando se menciona que se debe tener un especial cuidado sobre cual es la ventana activa que recibe el envío de teclas mediante macros.

Aquí se usa el método SendKeys  para salir de Excel
Application.SendKeys "% {F4}

Abre el editor de VBA
Application.SendKeys "%{F11}"

Abre la ayuda de Excel
Application.SendKeys "%{F1}"

Edita una celda de Excel
Application.SendKeys "%{F2}


Otros post de utilidad:



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends