3

受信トレイ内の90日以上経過したすべてのメールを削除しようとしています。オフィスで自動アーカイブが無効になっているため、使用できません。90日以上経過したすべてのメールを削除していないように見えるコードがあります。問題は私のループにあるのではないかと思います。Outlook2010をExchange2010で使用しています。

Private Sub RemoveEmail90()

Dim olSession As Outlook.Application, olNamespace As NameSpace
Dim olInbox As Outlook.MAPIFolder
Dim i As Integer
Set olSession = New Outlook.Application
Set olNamespace = olSession.GetNamespace("MAPI")
Set olInbox = olNamespace.GetDefaultFolder(olFolderInbox)
Set Delete_Items = olInbox.Items

For i = Delete_Items.Count To 1 Step -1
    If TypeName(Delete_Items.Item(i)) = "MailItem" Then
            If DateDiff("d",now, Delete_Items.Item(i).ReceivedTime) > 90 Then Delete_Items.Item(i).Delete
    End If
Next

Set olSession = Nothing
Set olNamespace = Nothing
Set olInbox = Nothing
End Sub
4

1 に答える 1

1

コードを微調整することで修正できました。これで、コードは正常に実行されます。13行目の「m」を「d」に変更すると、古いメールがすべて削除されます。上記の更新されたコード。

If DateDiff("d",now, Delete_Items.Item(i).ReceivedTime) > 90 Then Delete_Items.Item(i).Delete
于 2013-03-19T12:03:27.573 に答える