VBA Outlook: Establecer el cursor a una posición específica en el correo electrónico

VBA - Visual Basic for Application

VBA es maravillosamente adecuado para automatizar determinados procesos de trabajo en el mundo de Microsoft Office y mantener así a raya el tedioso trabajo diario y los clics innecesarios. Por ejemplo, puede programar una macro que responda automáticamente a un correo electrónico con un texto determinado. Para ahorrarse más clics, puede situar el cursor en un punto determinado del correo electrónico para poder seguir escribiendo en esa posición, por ejemplo, porque desea insertar un saludo individual.

Por ejemplo, el texto de respuesta automática podría contener un saludo con un marcador de posición:

“Hola …, […]”.

donde “…” debería utilizarse a continuación para introducir un nombre individual, por ejemplo.

Utilizar la función SendKeys

Para conseguir esto, se puede utilizar la función SendKeys en el código VBA.

Sub ReplyMSG()
    Dim olItem As Outlook.MailItem
    Dim olReply As MailItem ' Reply

    Set olReply = olItem.Reply
    olReply.Display
    SendKeys "{Right}{Right}{Right}{Right}{Right}", true
Fin Sub

En el ejemplo de código mostrado anteriormente, se genera un correo electrónico de respuesta y se muestra utilizando la función “SendKeys”. Esto es importante porque la función SendKeys funciona como si estuvieras haciendo una entrada de ratón o teclado, excepto que las entradas individuales de teclado o ratón se pasan por código.

La llamada display muestra el correo de respuesta y coloca automáticamente el cursor al principio del texto. Por lo tanto, en nuestro ejemplo, pasamos el parámetro {Right} 5 veces para mover el cursor 5 posiciones a la derecha. {RIGHT} representa la tecla de flecha derecha del teclado. Esto posiciona el cursor exactamente delante del “…” para que puedas escribir el nombre o el saludo directamente.

Con SendKeys se pueden realizar todo tipo de comandos de teclado. Por ejemplo, con {F1} puede activar la tecla F1 o con {ENTER} puede simular la tecla Intro/Retorno y provocar así un salto de línea en el correo electrónico.

El segundo parámetro de tipo bool que se puede pasar a la función SendKeys es el parámetro opcional [wait]. En nuestro ejemplo, el parámetro no es relevante y podría omitirse. Sin embargo, si más código sigue a SendKeys, entonces el parámetro puede ser de importancia. Pues el parámetro [wait] = true determina si se debe esperar hasta que SendKeys haya ejecutado todos los comandos de teclado antes de ejecutar el código posterior. Si [wait] = false, que es el valor predeterminado, el código posterior de la función o procedimiento se ejecuta inmediatamente sin esperar a que se hayan ejecutado todos los comandos del teclado. En determinadas circunstancias, esto puede dar lugar a efectos poco atractivos, pero depende del código VBA respectivo.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *