VBA Outlook: Marcar correo electrónico como leído

VBA - Visual Basic for Application

La locura diaria del correo electrónico a veces puede ser agotadora. Por eso es bueno poder simplificar y automatizar el trabajo con unas cuantas macros VBA. Un caso de uso podría ser que hayas marcado uno o más correos electrónicos y quieras marcarlos como leídos de una sola vez utilizando código VBA.

Este caso de uso raramente se dará “de forma aislada“. En la mayoría de los casos, se utilizará junto con otras macros, por ejemplo, si desea marcar correos electrónicos como leídos y luego moverlos automáticamente a otra carpeta. O si desea responder a un correo electrónico automáticamente mediante una macro VBA y, a continuación, marcarlo como leído.

Macro marcar correo electrónico como leído

En la siguiente imagen y código insertado, ya podemos ver lo pequeño y discreto que es el código.

Captura de pantalla del editor VBA con la macro que marca el email como leído
Código VBA para marcar el email como leído
Option Explicit
'marcar los mensajes seleccionados como leídos
Sub MarkMsgAsRead()
    Dim olItem As Outlook.MailItem
    
    For Each olItem In Application.ActiveExplorer.Selection
        olItem.UnRead = False
    Next olItem
    
End Sub

Así que hay un método MarkMsgAsRead que luego se puede ejecutar desde Outlook como una macro. Dentro del método, un olItem (abreviatura de outlookItem) se define como un MailItem. En un bucle For-Each se recorren todos los correos electrónicos seleccionados en la bandeja de entrada. Para marcar el MailItem como leído, se debe asignar a la propiedad “UnRead” el valor “False”.

Macro: marcar correo como no leído

Por supuesto, todo esto también funciona a la inversa, de forma que se pueden marcar como no leídos correos que ya han sido marcados como leídos. Para ello, basta con poner la propiedad “UnRead” a “True”.

Option Explicit
'marcar los mensajes seleccionados como no leídos
Sub MarkMsgAsUnRead()
    Dim olItem As Outlook.MailItem
    
    For Each olItem In Application.ActiveExplorer.Selection
        olItem.UnRead = True
    Next olItem
    
End Sub

Nota

Una nota final: Si obtiene mensajes de error la primera vez que ejecuta el código, simplemente compruebe que ha seleccionado las referencias/bibliotecas correctas. Estas se encuentran en el menú bajo Herramientas ➔ Referencias.

Captura de pantalla de las referencias necesarias en el editor VBA
Captura de pantalla de las referencias necesarias en el editor VBA

Leave a Reply

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