
Para marcar un correo como leído desde Excel usando VBA, puedes utilizar la biblioteca de objetos de Outlook. Aquí te dejo un ejemplo de cómo hacerlo. Asegúrate de que Outlook esté configurado como tu cliente de correo predeterminado y que tengas permisos para acceder a los correos:
Sub MarcarCorreoComoLeido()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Outlook.Namespace
Dim CarpetaBandejaEntrada As Outlook.MAPIFolder
Dim objMail As Outlook.MailItem
Dim i As Integer
' Inicializamos la aplicación de Outlook
On Error Resume Next
Set OutlookApp = GetObject(, "Outlook.Application")
If OutlookApp Is Nothing Then
Set OutlookApp = CreateObject("Outlook.Application")
End If
On Error GoTo 0
' Obtenemos el espacio de trabajo de Outlook
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
' Obtenemos la carpeta de Bandeja de Entrada
Set CarpetaBandejaEntrada = OutlookNamespace.GetDefaultFolder(olFolderInbox)
' Iteramos a través de los correos de la bandeja de entrada
For i = 1 To CarpetaBandejaEntrada.Items.Count
If TypeName(CarpetaBandejaEntrada.Items(i)) = "MailItem" Then
Set objMail = CarpetaBandejaEntrada.Items(i)
If Not objMail.UnRead Then
' Si el correo está no leído, lo marcamos como leído
objMail.UnRead = False
objMail.Save
End If
End If
Next i
' Liberamos los objetos
Set objMail = Nothing
Set CarpetaBandejaEntrada = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
MsgBox "Todos los correos fueron marcados como leídos.", vbInformation
End Sub
- Abre Excel y presiona `ALT + F11` para abrir el Editor de Visual Basic para Aplicaciones (VBA).
- Selecciona `Herramientas` en el menú y luego `Referencias`.
- En la lista de referencias, busca y marca `Microsoft Outlook xx.x Object Library` (donde «xx.x» depende de la versión de Office que tienes instalada).
- Cierra la ventana de referencias.
- En el Editor de VBA, ve a `Insertar` > `Módulo` para crear un nuevo módulo.
- Copia y pega el siguiente código en el módulo:
- Guarda tu trabajo y cierra el Editor de VBA.
- Ejecuta la macro `MarcarCorreoComoLeido` desde Excel.
Este script recorrerá todos los correos en la bandeja de entrada de tu cuenta configurada en Outlook y los marcará como leídos si están no leídos. Ten cuidado al realizar esta operación, ya que afectará a todos los correos no leídos en tu bandeja de entrada. Si deseas seleccionar correos específicos, podrías modificar el script para incluir criterios de búsqueda adicionales.
Conoce nuestros servicios



