outlook VBAを使用した最新メールの添付ファイルを特定のフォルダへ取り込む方法
下記のページを参考に、「あさ」というフォルダ内の最新受信1件の添付ファイルを対象(C:\保存フォルダ)
へ保存できるようにしようとしています。
https://tonari-it.com/outlook-vba-mail-attachment-saveasfile/
https://tonari-it.com/outlook-vba-subfolder-mail-attachmentfile/
素人目で Set objItem =
がフォルダ内の最新を選択できれば動くように感じますが、このままだと
For Each objAttachment In .Attachments
でエラーが出てしまいます。
修正方法を教えていただきたいです。
ここからコード
Sub SaveAttachmentFile()
Dim objItem As Object
Dim objIns As Inspector
Dim strFile As String
Dim strPath As String
Dim objAttachment As Object
Set objIns = Application.ActiveInspector
Set myNamespace = GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set objItem = myInbox.Folders.Item("あさ")
strPath = "C:\保存フォルダ\"
With objItem
For Each objAttachment In .Attachments
strFile = strPath & objAttachment
objAttachment.SaveAsFile strFile
Next objAttachment
End With
End Sub
コメントいただき、変更後
Sub SaveAttachmentFile()
Dim objItem As Object
Dim objIns As Inspector
Dim strFile As String
Dim strPath As String
Dim objAttachment As Object
Set objIns = Application.ActiveInspector
Set myNamespace = GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set objItem = myInbox.Folders.Item("あさ")
strPath = "C:\保存フォルダ\"
With objItem
If .Attachments.Count = 0 Then
MsgBox "メールに添付ファイルがありません。"
End If
strFile = strPath & .Attachments.Item(1)
For Each objAttachment In .Attachments
strFile = strPath & objAttachment
objAttachment.SaveAsFile strFile
Next objAttachment
End With
End Sub