Прежде всего, убедитесь, что путь к файлу полностью указан, т. Е. Вы получите здесь правильную строку:
strFile = strPath & objAtt.FileName
Во-вторых, когда вы вызываете Attachments.Add
, убедитесь, что файл существует на диск. Источником вложения может быть файл (представленный полным путем к файловой системе с именем файла) или элемент Outlook, который составляет вложение.
Вы можете попробовать запустить следующий код, который сохраняет вложение в диск:
Sub SaveAttachment()
Dim myInspector As Outlook.Inspector
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myInspector = Application.ActiveInspector
If Not TypeName(myInspector) = "Nothing" Then
If TypeName(myInspector.CurrentItem) = "MailItem" Then
Set myItem = myInspector.CurrentItem
Set myAttachments = myItem.Attachments
'Prompt the user for confirmation
Dim strPrompt As String
strPrompt = "Are you sure you want to save the first attachment " & _
"in the current item to the Documents folder? If a file with the " & _
"same name already exists in the destination folder, " & _
"it will be overwritten with this copy of the file."
If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
myAttachments.Item(1).SaveAsFile Environ("HOMEPATH") & "\My Documents\" & _
myAttachments.Item(1).DisplayName
End If
Else
MsgBox "The item is of the wrong type."
End If
End If
End Sub