VBA Outlook: Crear nuevo correo electrónico

VBA - Visual Basic for Application

VBA se utiliza a menudo para automatizar tareas rutinarias y facilitar la vida cotidiana. Usted también puede facilitarse la vida en Outlook con unos cuantos scripts VBA bien implementados. Una función básica puede ser crear automáticamente un nuevo correo electrónico con la ejecución de una macro o un clic.

Por supuesto, se podría argumentar: “Eso también se puede hacer en Outlook… con el botón ‘Nuevo correo electrónico’. Por supuesto, pero ¿y si también puedo especificar el receptor en el nuevo correo electrónico automáticamente? O si pudiera especificar un texto preformateado en el que la fuente y el tamaño de la fuente estén configurados correctamente? O si también puedo transferir la prioridad del correo electrónico?

Eso ahorraría muchos clics, siempre que el caso de uso lo permita.

Crear correo electrónico con el método CreateItem()

Para crear automáticamente un nuevo correo electrónico con Outlook, puedes utilizar la siguiente macro. La función a utilizar es Application.CreateItem(…).

También puede ver inmediatamente la gran cantidad de parámetros que se pueden configurar. Los parámetros que no son necesarios simplemente se pueden omitir.

Public Sub NewMail()
    Dim olItem As Outlook.MailItem
   
    Set olItem = Application.CreateItem(olMailItem)
    
    With olItem
         .To = "john.doe@my-domain.de"
         .CC = "mr.xy@gmail.com"
         .BCC = "mrs.xy@yahoo.com"
         .subject = "Important News"
         .VotingOptions = "Accept;Reject"
         .BodyFormat = olFormatHTML
         .Importance = olImportanceHigh
         .Sensitivity = olConfidential
         .Attachments.Add ("c:\Users\danie\Desktop\ekiwi_logo_en-1.jpg")
         .ExpiryTime = DateAdd("d", 1, Now)
         .DeferredDeliveryTime = #2/18/2024 8:00:00 AM#
         .HTMLBody = "<BODY style=font-size:20pt;font-family:Calibri><p>Hello,</p><p>today you receive our new newsletter</p><p>best regards,<br>Max Iceberg</p></BODY>"
         .Display
    End With

    Set olItem = Nothing
End Sub

Explicación de los parámetros

Los parámetros a establecer en realidad también son conocidos del funcionamiento normal de Outlook y casi se explican por sí mismos.

Parámetro “To”:

Aquí se introduce la dirección del destinatario o, si hay varias direcciones, también se pueden introducir varios destinatarios separados por punto y coma.

Parámetro “CC”:

Aquí se introducen las direcciones de correo electrónico que deben recibir una copia del correo electrónico; de nuevo separadas por punto y coma si hay varias direcciones de correo electrónico. Todos los destinatarios del correo electrónico pueden ver quién está en la CC

Parámetro “CCO”:

El parámetro es para “Copia ciega”. Introduzca aquí las direcciones de correo electrónico, como para “Para” o “CC”. La única diferencia es que los destinatarios no pueden ver que este correo electrónico también se ha enviado a los destinatarios nombrados aquí.

Parámetro “Subject”:

Simplemente introduzca aquí un texto como asunto del correo electrónico

Parámetro “VotingOptions”:

Estos son botones de votación para un correo electrónico de respuesta que se muestran en el correo electrónico. Aquí puede introducir cualquier palabra. Los botones de votación individuales deben estar separados entre sí por punto y coma.

Parámetro “BodyFormat”:

Aquí puede especificar el formato del correo electrónico. Hay 3 opciones que se pueden especificar utilizando las siguientes enumeraciones. Se puede usar el número o el enunciado:

  • olFormatUnspecified (valor 0): sin formato especificado
  • olFormatPlain (valor 1): formatea el correo electrónico como texto
  • olFormatHTML (valor 2): formatea el correo electrónico en HTML
  • olFormatRichText (valor 3): formatea el correo electrónico en formato RichText

Parámetro “Importance”:

Se puede utilizar para mostrar la importancia de un correo electrónico. En el propio correo electrónico, la importancia alta se suele marcar con un signo de exclamación rojo. Para indicar la importancia se pueden utilizar las siguientes enumeraciones o el propio valor:

  • olImportanceLow (valor 0): importancia baja
  • olImportanceNormal (valor 1): importancia nula o normal o media
  • olImportanceHeigh (valor 2): importancia alta

Parámetro “Sensitivity”:

Este parámetro se puede utilizar para dar al correo electrónico un estado que indique lo sensible que debe ser tratado el contenido o lo confidencial que debe ser tratado el correo electrónico. Para ello, puede pasar cuatro valores (enumeraciones), que tienen el siguiente significado. A continuación, se indica al destinatario del correo electrónico, por ejemplo, que éste debe tratarse como “confidencial”. Los valores son casi autoexplicativos:

  • olNormal (valor 0): sin nivel de confidencialidad; valor por defecto, en este caso también se puede omitir el parámetro.
  • olPersonal (valor 1): personal
  • olPrivate (valor 2): Privado
  • olConfidential (valor 3): confidencial.

Parámetro “ExpiryTime”:

Aquí se puede especificar una fecha de caducidad para el correo electrónico. Una vez alcanzada la fecha de caducidad, el correo electrónico es marcado como tachado por el destinatario, pero permanece en la bandeja de entrada. Esto simboliza para el destinatario que el contenido del correo electrónico ya no es relevante.

En el ejemplo anterior, se ha utilizado la función DateAdd con el parámetro/función Ahora. Se utiliza para pasar una fecha de caducidad calculada a partir de hoy en semanas, días, meses o similar.

Parámetro “DeferredDeliveryTime”:

Aquí puedes establecer un retraso en el envío del email o un retraso en la entrega del email. A este parámetro se le pasa un fecha/hora en la que el correo electrónico debe ser entregado. El correo electrónico permanece en la bandeja de salida de Outlook hasta que se alcanza esta fecha/hora.

Parámetro “Attachments”

El parámetro Adjuntos es una lista de todos los adjuntos de correo electrónico que se deben adjuntar al correo electrónico recién creado. Utilice la función Add para añadir los archivos adjuntos individuales a la lista. Para ello, pase a la función Añadir la ruta completa del archivo correspondiente que se va a adjuntar al correo electrónico.

Parámetro “HTMLBody” o “Cuerpo”:

Aquí se inserta el texto real del correo electrónico; en nuestro caso en formato HTML. Si, por ejemplo, se ha especificado “PlainText” como formato del cuerpo, no se puede utilizar este parámetro. En su lugar, se utiliza el parámetro “Body“. Para el formato RichText, debe utilizarse el parámetro “RTFBody“.

Hay varios parámetros más que pueden configurarse todos en la macro VBA, como ReplyTo, es decir, las direcciones de correo electrónico de respuesta a las que debe enviarse el correo electrónico de respuesta.

Resultado: Vista del correo recién creado en Outlook

Método “Mostrar”

Llamar a Visualizar hace que se muestre el correo electrónico recién creado en Outlook.

Correo electrónico

La siguiente imagen muestra el nuevo correo electrónico creado con VBA y los efectos de cada uno de los parámetros utilizando el ejemplo de código mostrado anteriormente.

Captura de pantalla del nuevo correo electrónico creado automáticamente con VBA y etiquetado de los parámetros individuales
Email recién generado con ejemplo de código VBA

Leave a Reply

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