2016-08-04 26 views
1

Ich bin neugierig, ob es möglich ist, Makro vom Zugriff zu starten, die zuletzt gesendete E-Mail von Outlook zu lokalen Ordner zu speichern? Ich habe so etwas in diesem Moment, aber es speichert alle E-Mails beim Senden. Bitte beraten.letzte E-Mail von Outlook nach dem Klicken auf eine Schaltfläche im Zugriff speichern

BEARBEITEN: jetzt habe ich es in vb in Zugriff, aber einen Fehler 'Methode oder Daten Mitglied nicht gefunden' und markierte erste Zeile.

Sub SaveLastSentItem() 
    Dim oApp As Outlook.Application 
    Dim myNameSpace As Outlook.Namespace 
    Dim myFolder As Outlook.Folder 
    Dim myNewFolder As Outlook.Folder 
    Dim myItem As Outlook.MailItem 
    Dim myCopiedItem As Outlook.MailItem 
    Dim myItems As Object 
    Dim savePath As String 

    Set oApp = New Outlook.Application 

    Set myNameSpace = oApp.GetNamespace("MAPI") 

    Set myFolder = myNameSpace.GetDefaultFolder(olFolderSentMail) 

    Set myItems = myFolder.Items 
    myItems.Sort ("[SentOn]") 


    Set myItem = myItems.GetLast 

    savePath = "C:\Users\best buy\Downloads\stackoverfow\Individual Reports\" '## Modify as needed 
    savePath = savePath & myItem.Subject & Format(myItem.CreationTime, " yyyy-mm-dd-hhNNss") 
    savePath = savePath & ".oft" 


    myItem.SaveAs savePath, OlSaveAsType.olMsg 

End Sub 

Antwort

0

Ja Sie werden die MailItems im Gesendet-Ordner von Senton Datum sortieren müssen. Dann können Sie MailItem.GetLast verwenden, um einen Verweis auf die letzte gesendete E-Mail festzulegen.

enter image description here

Sub SaveLastSentItem() 
    Dim oApp As Outlook.Application 
    Dim myNameSpace As Outlook.NameSpace 
    Dim myFolder As Outlook.Folder 
    Dim myNewFolder As Outlook.Folder 
    Dim myItem As Outlook.MailItem 
    Dim myCopiedItem As Outlook.MailItem 
    Dim myItems As Object 
    Dim savePath As String 

    Set oApp = New Outlook.Application 

    Set myNameSpace = oApp.GetNamespace("MAPI") 

    Set myFolder = myNameSpace.GetDefaultFolder(olFolderSentMail) 

    Set myItems = myFolder.Items 
    myItems.Sort ("[SentOn]") 


    Set myItem = myItems.GetLast 

    savePath = "C:\Users\best buy\Downloads\stackoverfow\Individual Reports\" '## Modify as needed 
    savePath = savePath & myItem.Subject & Format(myItem.CreationTime, " yyyy-mm-dd-hhNNss") 
    savePath = savePath & ".oft" 


    myItem.SaveAs savePath, OlSaveAsType.olMSG 

End Sub 
+0

Hey Thomas, ich habe bearbeitet auf meinem Beitrag mit dem tatsächlichen Code gemacht, aber es funktioniert nicht vom Zugang. – lucass3231

+0

Sie müssen einen Verweis auf die Outlook-Bibliothek hinzufügen, um diese verwenden –

+0

Ich bekomme diesen Code nicht, gibt es ein genaues Thema und Empfänger, es ist nicht das, was ich brauche. – lucass3231