Outlook VB-Skript zum automatischen Speichern von Anhängen im Laufwerk

345
Today42

Ich habe eine Regel in Outlook erstellt, die nach einer bestimmten Zeichenfolge in der Betreffzeile sucht, die Nachricht dann in einen Ordner verschiebt und das folgende Skript ausführt. Ich möchte, dass die Dateierweiterung überprüft wird, wenn "JPG" dann mit einer vordefinierten Zeichenfolge als Dateiname gespeichert wird.

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 

Das Skriptfehler mit dem folgenden Laufzeitfehler

'429' ActiveX-Komponente kann kein Objekt erstellen.

Dies ist in der
Set objfso = CreateObject("Scripting.FileSystemObject")Zeile im Code.

Ich glaube, ich erkläre das falsch. Kann jemand beraten? Outlook 2016 unter Windows.

0

1 Antwort auf die Frage

0
Boye Borg

Ich habe es selbst nicht ausprobiert, aber können Sie es versuchen If UCase(objAtt.Name) Like "*.JPG" Then? So was:

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 

Wenn Sie weitere Dateitypen unterstützen müssen, können Sie Folgendes versuchen:

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