AW: Excel VBA Speichern unter des per VBA gesendeten E-Mail
09.08.2023 16:45:46
Oberschlumpf
Hi Christian,
hier, versuch mal
Sub test()
Dim objApp As Object ' Outlook.Application
Dim objItem As Object ' Outlook.MailItem
Dim objFolder As Object
Dim item As Object
Dim i As Long
Dim x As String
Set objApp = CreateObject("Outlook.Application")
Set objFolder = objApp.GetNameSpace("MAPI").GetDefaultfolder(5) ' 5 = olFolderSentMail
i = 1
For Each item In objFolder.Items
If TypeName(item) = "MailItem" Then
If item.Subject = Range("A1").Value Then
i = i + 1
x = item.CreationTime
x = x & ", " & item.Subject
Debug.Print x
item.SaveAs "d:\herber\" & Replace(item.Subject, ":", "") & ".msg" 'den Pfad musst du natürlich anpassen
Exit For
End If
End If
Next
End Sub
Du schreibst, dass du die besagte Mail "von Hand" abschickst.
So müsstest du in deinem Code noch angeben, dass für meinen Code in Zelle A1 der Betreff deiner besagten Mail gespeichert wird (anstelle von A1 kannst du natürlich auch jeden anderen Weg wählen; wichtig ist nur, dass meinem Code der Betreff von deiner Mail bekannt ist)(du könntest meinen Code auch mit Betreff als Parameter aufrufen)
So, mein Code durchsucht nun den Ordner für gesendete Mails.
Wenn Mail mit dem richtigen Betreff gefunden, wird diese Mail im nächsten Schritt im von dir angegebenen Ordner mit Betreff als Dateiname als .msg-Datei gespeichert - fertig.
Ach so...ich "musste" noch Replace() verwenden, weil ausgerechnet die Mail, die ich als Testmail verwendet habe, im Betreff einen Doppelpunkt enthält - und Doppelpunkte in Dateinamen vertragen sich bekanntermaßen ja genau so wenig wie Feuer und Wasser :-)
Wenn du dich nach genügend Tests also auch entschließt, deinen Betreff als Dateiname zu verwenden, musst du vor dem Speichern vllt noch andere Zeichen eliminieren.
Hilfts?
Ciao
Thorsten