VBA: Leer fecha y hora de correo electrónico de Outlook

VBA - Visual Basic for Application

VBA es muy útil para automatizar tareas cotidianas y recurrentes. Si utiliza VBA en el contexto de Microsoft Outlook para simplificar su trabajo diario con correos electrónicos o para transferir datos de formularios de correos electrónicos a una hoja de cálculo de Excel con un solo clic, es posible que a veces necesite leer en voz alta la fecha y/o la hora en que recibió el correo electrónico.

Código VBA

Esto es incluso relativamente simple y se puede hacer con sólo unas pocas líneas, una vez que tenga el objeto mail disponible en el código VBA. El código Visual Basic correspondiente tiene el siguiente aspecto:

Sub TimeOfEMail()
    Dim objOL As Outlook.Application
    Dim objMsg As Outlook.MailItem
    Dim objSelection As Outlook.Selection
    Dim receivedDateTime As Date
    ' Objeto de aplicación de Outlook.
    Set objOL = CreateObject("Outlook.Application")
    ' Obtener colección de objetos seleccionados (correos electrónicos).
    Set objSelection = objOL.ActiveExplorer.Selection
    Utilizar el primer correo electrónico seleccionado.
    Set objMsg = objSelection.Item(1)
    receivedDateTime = objMsg.ReceivedTime
    'a algo con valor DateTime.
    Debug.Print receivedDateTime
End Sub

La primera parte consiste simplemente en encontrar el objeto VBA correcto que representa el correo electrónico (objMsg). Una vez que tienes eso, es bastante simple. Porque el objeto MailItem tiene una propiedad llamada «ReceivedTime«, que contiene la fecha y la hora. A través de Debug.Print, sale en este caso en la ventana de la consola o ventana directa.

Captura de pantalla del editor VBA con código para leer la fecha y hora de recepción de un correo electrónico
Código y salida en la ventana de la consola

Si la salida estándar no es suficiente, puede dar formato a la fecha y hora de recepción con la función de formato. Esto podría entonces tener el siguiente aspecto:

MiFecha = Format(FechaHoraRecibida, "dddd, mmm d aaaa")
' da como resultado "lunes, 27 de febrero de 2023".
Debug.Print MiFecha

Encontrará información más detallada sobre las distintas formas de dar formato a la fecha y la hora en la documentación de Microsoft sobre la función de formato.

Leave a Reply

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