Outlook VB Script для автоматического сохранения вложений на диск

288
Today42

Я создал правило в outlook, которое ищет определенную текстовую строку в строке темы, затем перемещает сообщение в папку и выполняет приведенный ниже скрипт. Я хочу, чтобы проверить расширение файла, если «JPG», а затем сохранить его с заранее определенной строкой в ​​качестве имени файла.

Public Sub saveAttachtoDisk_1(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat Dim FiledasName As String Dim objattext As String Dim objfso As Object  dateFormat = Format(Now, "yyyy-mm-dd H-mm") saveFolder = "C:\Users\reeddl\Documents\Expenses_Image_Filing"  Set objfso = CreateObject("Scripting.FileSystemObject") sExt = objfso.GetExtensionName(objAtt.FileName)  For Each objAtt In itm.Attachments FiledasName = itm.Subject Set fso = New FileSystemObject If UCase(objfso.GetExtensionName(objAtt.Name)) = "JPG" Then MsgBox (objfso.GetExtensionName(objAtt.Name)) objAtt.SaveAsFile saveFolder & "\" & dateFormat & FiledasName End If Set objAtt = Nothing Next End Sub 

Ошибка сценария со следующей ошибкой во время выполнения

'429' Компонент ActiveX не может создать объект.

Это в
Set objfso = CreateObject("Scripting.FileSystemObject")строке кода.

Я думаю, что я объявляю это неправильно? Кто-нибудь может посоветовать? Outlook 2016 на Windows.

0

1 ответ на вопрос

0
Boye Borg

Я не пробовал сам, но вы можете попробовать использовать If UCase(objAtt.Name) Like "*.JPG" Then? Как это:

Public Sub saveAttachtoDisk_1(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat Dim FiledasName As String  dateFormat = Format(Now, "yyyy-mm-dd H-mm") saveFolder = "C:\Users\reeddl\Documents\Expenses_Image_Filing"  For Each objAtt In itm.Attachments FiledasName = itm.Subject Set fso = New FileSystemObject If UCase(objAtt.Name) Like "*.JPG" Then objAtt.SaveAsFile saveFolder & "\" & dateFormat & FiledasName End If Set objAtt = Nothing Next End Sub 

Если вам нужно поддерживать больше типов файлов, вы можете попробовать что-то вроде этого:

Select Case UCase(Right(objAtt.Name, 3)) Case "JPG", "PNG", "BMP", "GIF" objAtt.SaveAsFile saveFolder & "\" & dateFormat & FiledasName End Select