Excel VBA SendKeys
En este artículo, veremos un resumen de Excel VBA SendKeys. ¿Alguna vez ha pensado en crear un programa que guarde su hoja de trabajo automáticamente y no necesita presionar Ctrl + S o el botón Guardar de Excel para hacerlo? Parece ser una fantasía, ¿verdad? Sin embargo, esto se puede hacer. En VBA, hay una instrucción de comando llamada SendKeys que le permite enviar las pulsaciones de teclas como un comando a la aplicación de la misma manera que si estuviera usando el teclado para realizar la tarea. (Ej. Guardar el archivo. Usted hace Ctrl + S a través del teclado para guardar un archivo). Se recomienda utilizar SendKeys como la última opción mientras automatiza cualquier tarea. La razón detrás de esto es, como ya discutimos, SendKeys envía las pulsaciones de teclas a la aplicación que está actualmente activa. ¿Qué sucede si tiene una ventana de aplicación activa en el momento en que se ejecuta el código en el que no desea que ocurran los cambios? Dará resultados inesperados, ¿verdad? Esta es la única razón, debemos usar SendKeys como la última opción mientras automatizamos las cosas. Sin embargo, se puede usar para la pequeña automatización, donde ningún otro entorno de aplicación está a punto de interferir con el que desea que ocurra el cambio.
Método de sintaxis SendKeys:
SendKeys(String As String, (Wait))
Dónde,
El primer argumento 'Cadena como cadena' especifica las combinaciones de teclas que desea utilizar en el programa (por ejemplo, Ctrl + S sería la combinación de teclas).
Wait sería un parámetro opcional que toma valores booleanos TRUE y FALSE. Si la espera tiene el valor VERDADERO, significa que el sistema esperará a que se procesen las claves y luego pasará a la siguiente línea y compilará / ejecutará la misma. Si el valor de espera es FALSO (puede mantenerse en blanco), el sistema no esperará a que se procesen las claves y continuará ejecutando todo el código.
Ciertos métodos están utilizando los cuales puede combinar las pulsaciones de teclas con Ctrl, Shift o Alt. Veamos cómo podemos hacer eso. Siguiente es una tabla que especifica las combinaciones de teclas para SendKeys con Ctrl, Shift y Alt:
Clave para combinar con | Operador que se utilizará antes de las teclas para la combinación |
Cambio | + (Teclado más signo) |
Ctrl | (Signo del operador de Caret) |
Alt | % (Signo de porcentaje) |
Bueno, qué significa eso? Significa que si desea usar una combinación de teclado como Ctrl + S debajo del código, puede usar el método SendKeys y hacerlo con SendKeys, luego un operador Caret (^) para Ctrl y luego "s". Guardará la hoja de trabajo actual en su archivo de Excel.
¿Cómo usar el método SendKeys en Excel VBA?
Aprenderemos cómo usar el Método SendKeys en Excel usando el Código VBA.
Puede descargar esta plantilla Excel VK SendKeys aquí - Plantilla Excel VK SendKeysVBA SendKeys - Ejemplo # 1
Veamos algunos ejemplos simples que nos permitirán profundizar en el funcionamiento del comando VBA SendKeys.
En este primer ejemplo, estamos a punto de ver una automatización muy simple que guarda automáticamente el archivo de Excel actual que está abierto. No necesita presionar el botón Guardar o Ctrl + S para guardar el archivo. Siga los pasos a continuación para lograr el resultado.
Paso 1: Abra el Módulo desde la pestaña del menú Insertar como se muestra a continuación.
Paso 2: defina un nuevo subprocedimiento que pueda contener su macro.
Código:
Sub Ejemplo_1 () End Sub
Paso 3: Ahora, para guardar cualquier archivo, tiene una combinación de teclas del teclado como Ctrl + S. para convertir esto en código, podemos usar el operador de intercalación (^) y luego la palabra clave "s" como argumento para la instrucción SendKeys.
Código:
Sub Ejemplo_1 () Application.SendKeys ("s") End Sub
Aquí, la palabra clave Aplicación especifica la aplicación a la que estamos enviando las pulsaciones de teclas (en este caso, la aplicación Excel). "S" debajo del paréntesis especifica la operación de teclado similar Ctrl + S.
Paso 4: Ejecute este código presionando el botón Ejecutar o presionando la tecla F5.
Después de la ejecución exitosa de este código, su archivo se guarda.
VBA SendKeys - Ejemplo # 2
Ahora, estamos a punto de ver cómo cerrar una aplicación actual enviando teclas programables a través del código de macro utilizando el método SendKeys. Siga los pasos a continuación:
Paso 1: escriba el subprocedimiento que puede contener su macro debajo del módulo.
Código:
Sub Ejemplo_2 () End Sub
Paso 2: utilice el método Application.SendKeys para pasar las teclas programables del teclado a la aplicación. Dado que el panel VBA actual se puede cerrar con el atajo de teclado Alt + Q, podemos usar "% q" en macro.
Código:
Sub Ejemplo_2 () Application.SendKeys ("% q") End Sub
Paso 3: presiona el botón Ejecutar o F5 para ejecutar este código. Tan pronto como ejecute este código, el Editor de Visual Basic actual se cerrará y navegará al archivo de Excel.
VBA SendKeys - Ejemplo # 3
Ahora, vamos a escribir un código que abre automáticamente el Bloc de notas y escribe un texto en él automáticamente. Vea la captura de pantalla a continuación:
Paso 1: escriba el subprocedimiento que puede contener su macro debajo del módulo.
Código:
Sub Example_3 () End Sub
Call Shell permite que el sistema abra la aplicación. La ruta es donde está presente el Notepad.exe. vbNormalFocus es un argumento opcional que especifica el enfoque en abrir y restaurar la aplicación a su tamaño y posición original.
Paso 2: use las teclas Llamar y Enviar en combinación para que el sistema pueda agregar un texto en el Bloc de notas.
Código:
Sub Ejemplo_3 () Llamada Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub
Paso 3: Aquí, estamos agregando el texto "¡Hola VBA!" Usando SendKeys al Bloc de notas. True especifica el tiempo de espera para el comando SendKeys.
Código:
Sub Ejemplo_3 () Llamada Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Llame a SendKeys ("Hola VBA!", Verdadero) Fin Sub
Paso 4: Ejecute este código presionando la tecla F5 o haciendo clic en el botón Ejecutar.
Así es como podemos usar el método SendKeys para automatizar las aplicaciones a través de la macro VBA.
Cosas para recordar
- Tenga mucho cuidado al usar SendKeys, ya que puede dar resultados inesperados si tiene varias aplicaciones abiertas.
- Puede usar SendKeys para automatizar las tareas pequeñas como guardar un archivo de Excel o cerrar un archivo de Excel, etc.
- Use el método SendKeys como última opción mientras intenta automatizar las cosas.
Artículo recomendado
Esta es una guía de VBA SendKeys. Aquí discutimos cómo usar el Método SendKeys en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:
- VBA While Loop (Ejemplos con plantilla de Excel)
- VBA Environ | Plantillas de Excel
- VBA Goal Seek (Ejemplo)
- ¿Cómo cambiar la hoja de trabajo de nombres en Excel VBA?