Еще один более простой вариант через создание Правила со скриптом в аутлуке.
( начиная с 10го офиса в реестре надо внести вот такие изменения , чтобы создание правил со скриптом в аутлуке стало возможным https://www.slipstick.com/outlook/rules/outlook-run-a-script-rules/ )
[vba]Код
Public Sub ruleAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat
saveFolder = "C:\Test\"
'dateFormat = Format(Now, "yyyy-mm-dd H-mm") 'если нужно сделать так, чтобы все приходящие файлы записывалось с разными именами
' проверяем есть ли на компе папка saveFolder , если её нет,то создаем
If Dir(saveFolder, vbDirectory) = "" Then
MkDir saveFolder
End If
For Each objAtt In itm.Attachments
If objAtt.fileName Like "*.xl*" Then ' если вложение Экселевский файл , то записываем его в папку saveFolder
'objAtt.SaveAsFile saveFolder & dateFormat & objAtt.fileName 'если нужно сделать так, чтобы все приходящие файлы записывалось с разными именами
objAtt.SaveAsFile saveFolder & objAtt.fileName
End If
Next
Set objAtt = Nothing
End Sub
[/vba]