Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

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:

TeclaCó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:

  1. Recuperar password de hoja bloqueada
  2. Función BUSCARV
  3. Función USCARH
  4. Función SI
  5. Traducción de funciones de Excel a diferentes idiomas
  6. Abre explorador de archivo de Windows e inserta foto
  7. Abre explorador de archivo de Windows
  8. Combobox suma datos repetidos
  9. Busca un dato en todas las hojas de excel
  10. Combobox incrustado en Excel
  11. Formulario para insertar datos en hoja de excel
  12. Formulario de alera y envío de mail
  13. Tutoriales sobre VBA
  14. Llenar combobox y buscar datos
  15. Mensaje de Alerta y envío de mail con Excel
  16. Combobox que lista hojas de excel y las selecciona
  17. Busca un dato en todas las hojas de excel

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