Cómo marcar por lotes todos los correos electrónicos como leídos en todas las carpetas de Outlook con VBA

Comparte ahora:

Varios usuarios anhelan una solución para marcar por lotes todos los correos electrónicos como leídos en todas las carpetas de Outlook. En este artículo, le presentaremos dicho método.  

Como todos sabemos, es fácil marcar todos los correos de una carpeta como leídos. Simplemente seleccione y haga clic derecho en la carpeta y luego elija la opción "Marcar todo como leído" en el menú contextual. Sin embargo, si hay varias carpetas que tienen correos electrónicos no leídos, por los medios anteriores, debe trabajar en las carpetas una por una. Es demasiado molesto. De ahí que aquí te compartamos una forma mucho más eficiente, que te permitirá realizarlo a granel.

Marcar por lotes todos los correos electrónicos como leídos en todas las carpetas de Outlook

  1. Para empezar, abre la aplicación Outlook.
  2. Luego, presione "Alt + F11" para acceder al editor de Outlook VBA.
  3. A continuación, en la ventana "Microsoft Visual Basic para aplicaciones", copie el código siguiente en un módulo no utilizado.
Sub MarkAllItemsAsRead()
    Dim objStores As Outlook.Stores
    Dim objStore As Outlook.Store
    Dim objOutlookFile As Outlook.Folder
    Dim objFolder As Outlook.Folder
 
    'Process all Outlook files
    Set objStores = Outlook.Application.Session.Stores
  
    For Each objStore In objStores
        Set objOutlookFile = objStore.GetRootFolder
 
        For Each objFolder In objOutlookFile.Folders
            'Process mail folders
            If objFolder.DefaultItemType = olMailItem Then
               Call ProcessFolders(objFolder)
            End If
        Next
    Next
End Sub

Sub ProcessFolders(ByVal objCurFolder As Outlook.Folder)
    Dim objUnreadItems As Outlook.Items
    Dim i As Integer
    Dim objItem As Object
    Dim objSubFolder As Outlook.Folder
 
    Set objUnreadItems = objCurFolder.Items.Restrict("[Unread]=True")
 
    'Mark all unread emails as read
    For i = 1 To objUnreadItems.Count
        Set objItem = objUnreadItems.Item(i)
        objItem.UnRead = False
        objItem.Save
    Next
 
    'Process subfolders recursively
    If objCurFolder.Folders.Count > 0 Then
       For Each objSubFolder In objCurFolder.Folders
           Call ProcessFolders(objSubFolder)
       Next
    End If
End Sub

Código VBA: marcar por lotes todos los correos electrónicos como leídos en todas las carpetas de Outlook

  1. Luego, coloque el cursor en la primera subrutina.
  2. Posteriormente, presione el botón de tecla "F5" o haga clic en el icono "Ejecutar" en la barra de herramientas.
  3. Finalmente, una vez que se complete la macro, puede volver a la lista de carpetas de correo.
  4. Allí, verá que todos los correos electrónicos no leídos se han marcado como leídos, como se muestra en la captura de pantalla.Se han leído todos los correos electrónicos

Escape de la miserable pérdida de datos de Outlook

Los usuarios pueden haber aceptado el hecho de que los documentos de Word y los libros de Excel se pueden corromper fácilmente. De hecho, al igual que estos archivos, el archivo de datos de Outlook también es propenso a sufrir daños. Por lo tanto, si no está dispuesto a experimentar eso, debe tomar algunas medidas. Debe incluir precauciones, como copias de seguridad periódicas y bloqueo de todo malware o virus, y algunas medidas de ayuda, como saber cómo iniciar la herramienta de reparación de la bandeja de entrada. escaneo y mantener una poderosa herramienta de reparación externa, como DataNumen Outlook Repair.

Introducción del autor:

Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparar mdf y productos de software de reparación de Outlook. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.