2016-07-01 11 views
1

Ich verwende ein VBA-Skript, um alle Anlagen in einem Ordner zu speichern. Ich versuche, den Dateinamen mit dem Namen des Absenders umzubenennen. Wenn ich dies jedoch versuchte, änderte es das Format der Dateien. Wie kann ich die Dateien mit dem Namen des Absenders umbenennen, ohne das Format der Datei zu ändern?Umbenennen gespeicherter Anlagen mit Sendername

Sub Save_Mail_Attachment() 
'''''Variable declarions 
Dim ns As NameSpace 
Dim inb As Folder 
Dim itm As Outlook.MailItem 
Dim atch As Attachment 

    '''''Variables Initialization 
Set ns = Outlook.GetNamespace("MAPI") 
Set inb = ns.GetDefaultFolder(olFolderInbox).Folders("Specified Folder") 
File_Path = "C:\Attachments\" 

'''''Loop Thru Each Mail Item 
For Each itm In inb.Items 

'''''Loop Thru Each Attachment 
    For Each atch In itm.Attachments 
     On Error Resume Next 
     atch.SaveAsFile File_Path & atch.FileName 
     Debug.Print itm.SenderName 

    Next atch 
Next itm 



End Sub 
+0

'.FileName' gibt die Erweiterung für mich zurück. Haben Sie bestätigt, dass Sie die Erweiterung mit der Eigenschaft 'FileName' in Ihrem Code zurückgeben? – Kyle

+0

Nein, wie würde ich das tun? – wisenhiemer

Antwort

0

es so probieren ...

Option Explicit 
Sub Save_Mail_Attachment() 
    '''''Variable declarions 
    Dim ns As NameSpace 
    Dim inb As Folder 
    Dim itm As Outlook.MailItem 
    Dim atch As Attachment 
    Dim File_Path As String '<--- missing 
    Dim SenderName As String ' <------ Add 

     '''''Variables Initialization 
    Set ns = Outlook.GetNamespace("MAPI") 
    Set inb = ns.GetDefaultFolder(olFolderInbox).Folders("Specified Folder") 

    File_Path = "C:\Attachments\" 

    '''''Loop Thru Each Mail Item 
    For Each itm In inb.Items 

    '''''Loop Thru Each Attachment 
     For Each atch In itm.Attachments 
'   On Error Resume Next 
      SenderName = itm.SenderName '<----- Add 
      atch.SaveAsFile File_Path & " " & SenderName & atch.FileName '<--- Add 
      Debug.Print itm.SenderName 

     Next atch 
    Next itm 

End Sub 

EDIT

Ist es möglich, aus den Dateinamen weglassen

Ja

hinzugefügt wird, Sie könnte so etwas tun.

Aber denken Sie daran, wenn Sie mehrere E-Mails mit Anhängen von demselben Absender erhalten, werden Sie am Ende bestehende Datei überschreiben.

+0

Es funktioniert, danke! Ist es jedoch möglich, den Dateinamen nicht hinzuzufügen? – wisenhiemer