「既読」とマークされたメッセージを自分のerrorMails
フォルダから自分のフォルダに移動しようとしています。sentErrors
どちらも自分のmailOne
フォルダ内にあります。私が持っている現在のコードは、既読としてマークしたほとんどのメールで機能しますが、最後に読んだ1通のメールはそのままにしておきます。
私は何かが足りないのですか?
Public Sub moveToSentFolder()
Dim obj As Object
Dim Items As Outlook.Items
Dim OutMail As Outlook.MailItem
Dim archiveFolder As Outlook.Folder
Dim mailOneFolder As Outlook.Folder
Dim sentErrorFolder As Outlook.Folder
Dim dumpErrorFolder As Outlook.Folder
Set archiveFolder = Outlook.Session.Folders("Archives")
Set mailOneFolder = archiveFolder.Folders("mailOne")
Set errorFolder = ehealthFolder.Folders("errorMails")
Set dumpErrorFolder = ehealthFolder.Folders("sentErrors")
'Dim Message As MailItem
Set Folder = Application.Session.GetDefaultFolder(olFolderInbox)
Set Items = errorFolder.Items
For i = Items.Count - 1 To 0 Step -1
With Items(i)
''Error 438 is returned when .receivedtime is not supported
On Error Resume Next
If .UnRead = False Then
If Err.Number = 0 Then
.Move dumpErrorFolder
Else
Err.Clear
End If
End If
MsgBox i 'debug
End With
Next
'For some reason the commented out code below only seems to move half of all the read mails, so I have to run the macro more than once to clear folder of read mails - this code now unused
'For Each Message In Items
'If Message.UnRead = False Then
''Message.Move dumpErrorFolder
'i = i + 1
'End If
'Next Message
End Sub