2017-06-16 2 views
1

Ce script VB recevra tous les messages dans ma boîte de réception Outlook.Visual Basic Outlook Last Write Time

Sub DetermineLastWriteTime() 
    Dim myNameSpace As Outlook.NameSpace 
    Dim myInbox As Outlook.Folder 
    Dim myItems As Outlook.Items 
    Dim myItem As Object 

    Set myNameSpace = Application.GetNamespace("MAPI") 
    Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox) 
    Set myInboxItems = myNameSpace.GetDefaultFolder(olFolderInbox).Items 

    MsgBox (myInboxItems.LastWriteTime) 
End Sub 

Je voudrais déterminer les e-mails qui n'ont pas été modifiés dans n minutes. La boîte de message avec la fonction LastWriteTime produit une boîte de dialogue avec le message L'objet ne prend pas en charge cette propriété ou méthode.

enter image description here

Y at-il une autre façon de déterminer les e-mails qui n'ont pas été modifiés dans n minutes?

Répondre

2

LastWriteTime ne semble pas être une propriété d'Outlook, donc je ne sais pas d'où cela vient?

En outre, vous essayez d'appeler cela sur une collection d'éléments et non sur chaque élément individuel.

Essayez quelque chose comme:

Sub DetermineLastWriteTime() 

    Const NUM_MINS As Double = 20 
    Dim myNameSpace As Outlook.NameSpace 
    Dim myInbox As Outlook.Folder 
    Dim myInboxItems As Outlook.Items 
    Dim myItem As Object, t, mins 

    Set myNameSpace = Application.GetNamespace("MAPI") 
    Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox) 
    Set myInboxItems = myNameSpace.GetDefaultFolder(olFolderInbox).Items 

    For Each myItem In myInboxItems 
     t = myItem.LastModificationTime 
     mins = (Now - t) * (24 * 60) 
     If mins <= NUM_MINS Then 
      Debug.Print t, mins 
     End If 
    Next myItem 


End Sub 
+0

Ceci est une solution parfaite! – JeremyCanfield