Comment marquer par lots tous les e-mails comme lus dans tous les dossiers Outlook avec VBA

Partage maintenant:

Plusieurs utilisateurs recherchent une solution pour marquer par lots tous les e-mails comme lus dans tous les dossiers Outlook. Dans cet article, nous allons vous présenter une telle méthode.  

Comme nous le savons tous, il est facile de marquer tous les e-mails d'un dossier comme lus. Il suffit de sélectionner et de cliquer avec le bouton droit sur le dossier, puis de choisir l'option "Marquer tout comme lu" dans le menu contextuel. Cependant, s'il existe plusieurs dossiers contenant des e-mails non lus, par les moyens ci-dessus, vous devez effectuer les opérations sur les dossiers un par un. C'est trop gênant. Par conséquent, nous vous partagerons ici un moyen beaucoup plus efficace, qui vous permettra de le réaliser en masse.

Marquer par lots tous les e-mails comme lus dans tous les dossiers Outlook

  1. Pour commencer, lancez l'application Outlook.
  2. Ensuite, appuyez sur "Alt + F11" pour accéder à l'éditeur Outlook VBA.
  3. Ensuite, dans la fenêtre "Microsoft Visual Basic pour Applications", copiez le code ci-dessous dans un module inutilisé.
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

Code VBA - Marquer par lots tous les e-mails comme lus dans tous les dossiers Outlook

  1. Ensuite, placez le curseur dans le premier sous-programme.
  2. Ensuite, appuyez sur la touche "F5" ou cliquez sur l'icône "Exécuter" dans la barre d'outils.
  3. Finalement, une fois la macro terminée, vous pouvez revenir à la liste des dossiers de messagerie.
  4. Là, vous verrez que tous les e-mails non lus ont été marqués comme lus, comme indiqué dans la capture d'écran.Tous les e-mails ont été lus

Échapper à la misérable perte de données Outlook

Les utilisateurs ont peut-être accepté le fait que les documents Word et les classeurs Excel peuvent être facilement corrompus. En fait, comme ces fichiers, le fichier de données Outlook est également susceptible d'être endommagé. Par conséquent, si vous hésitez à en faire l'expérience, vous devez prendre certaines mesures. Il devrait inclure des précautions, comme des sauvegardes régulières et le blocage de tous les logiciels malveillants ou virus, et certaines mesures de secours, comme savoir comment lancer l'outil de réparation de la boîte de réception, Scanpst et conserver un puissant outil de correction externe, tel que DataNumen Outlook Repair.

Introduction de l'auteur:

Shirley Zhang est une experte en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris réparation mdf et produits logiciels de réparation Outlook. Pour plus d'informations, visitez www.datanumen.com

Partage maintenant:

Les commentaires sont fermés.