以下は、Outlookのメールから添付ファイルをダウンロードするスクリプトです。添付ファイルは別の名前を持っている場合にのみ、私のコードに記載されているパスで上書きしないで同じ名前の添付ファイルをダウンロードする
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim dateFormat
dateFormat = Format(Now, "yyyy-mm-dd")
sSaveFolder = "c:\My\temp\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
それをダウンロードして保存します。
たとえば、添付ファイル付きのメールを「List.csv」として受信しました。同じ名前で約10回メールを受け取った。
ただし、1つのファイル(最新のもの)のみがパスに保存されています。
私のために働く最終コード。
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dt30daysAgo As Date
dt30daysAgo = DateAdd("d", -30, Now)
saveFolder = "c:\My\temp"
For Each objAtt In itm.Attachments
If itm.ReceivedTime > dt30daysAgo Then
If objAtt.FileName <> "list.csv" Then
objAtt.SaveAsFile saveFolder & "\" & objAtt.FileName
Else
objAtt.SaveAsFile saveFolder & "\" & itm.Subject & objAtt.FileName
End If
End If
Next
End Sub
これらの添付ファイルが同じ名前の場合、上書きされていると思われます。ファイル名の末尾にカウンタのようなものを追加してみてください。電子メールの納品日または – gizlmo
保存する前にファイルが存在するかどうかを確認し、保存されている場合はファイル名を変更してください。 –