2017-06-16 8 views
1

このVBスクリプトは、Outlookの受信トレイにあるすべての電子メールを取得します。Visual Basic Outlook最終書き込み時間

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 

私はN分に変更されていない電子メールを決定したいと思います。 LastWriteTime関数のメッセージボックスには、メッセージを含むポップアップボックスがあります。オブジェクトは、このプロパティまたはメソッドをサポートしていません。

enter image description here

N分に変更されていない電子メールを決定するためにいくつかの他の方法はありますか?

答えて

2

LastWriteTimeは、Outlookのプロパティではないようですが、どこから来たのかわかりません。

また、個々のアイテムではなく、アイテムのコレクションでコールしようとしています。これは完璧なソリューションです

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

のようなものを試してみてください! – JeremyCanfield

関連する問題