11.01.2022, 10:18
OK, nachdem ich mir nunmal auch noch ein paar Gedanken zum eigentlich Prozess gemacht habe, habe ich mich für eine Art "Work-around" entschieden, der zumindest funktioniert und auch nicht mehr Klicks verursacht. mit Mail.Display öffne ich einfach die gesendete Mail und entscheide dann so, ob sie gedruckt werden muss/soll. Gleichzeitig speichert er mir die Mail nun noch.
Da ich mit Outlook noch nicht ganz so VBA erfahren bin, bin ich gern offen für Anmerkungen, falls das jetzt hier nicht so richtig sauber sein sollte.
Code:
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Set Ns = Application.GetNamespace("MAPI")
Set Items = Ns.GetDefaultFolder(olFolderSentMail).Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
PrintNewItem Item
End If
End Sub
Private Sub PrintNewItem(Mail As Outlook.MailItem)
Dim Speicherpfad As String
Dim Name As String
Dim Dateiname As String
Dim Dat As New DataObject
With Mail
Name = Replace(Mail.Subject, "/", "_")
Name = Replace(Name, "!", "")
Name = Replace(Name, ".", "_")
Name = Replace(Name, "\", "_")
Name = Replace(Name, ":", "_")
Name = Replace(Name, "(", "")
Name = Replace(Name, ")", "")
Name = Replace(Name, """", "")
End With
Speicherpfad = " *Mein Pfad* "
Dateiname = Format(Mail.ReceivedTime, "YYYY.MM.DD") & " " & Name & ".msg"
Mail.SaveAs (Speicherpfad & Dateiname)
Mail.Display
End Sub
Da ich mit Outlook noch nicht ganz so VBA erfahren bin, bin ich gern offen für Anmerkungen, falls das jetzt hier nicht so richtig sauber sein sollte.
