Seite 1 von 1

Anlagen automatisch drucken

Verfasst: Freitag, 06. Juli 2018 - 15:24 Uhr
von fragenpeter
Hallo Zusammen,

ich würde gerne Anhänge direkt beim Eingang drucken lassen.
Ich habe es per Regel hinbekommen, allerdings wird die Nachricht immer mit gedruckt.
Die benötige ich aber nicht.
Ich habe auch schon google und sämtlich Forenbeiträge zu VBA gelesen und gefunden aber irgendwie bin ich zu blöd.

Wenn ich folgenden Code unter VBA eingebe und speicher, passiert nichts.
Private Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Dim Folder As Outlook.MAPIFolder

Set Ns = Application.GetNamespace("MAPI")
Set Folder = Ns.GetDefaultFolder(olFolderInbox)
Set Items = Folder.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
PrintAttachments Item
End If
End Sub

Private Sub PrintAttachments(oMail As Outlook.MailItem)
On Error Resume Next
Dim colAtts As Outlook.Attachments
Dim oAtt As Outlook.Attachment
Dim sFile As String
Dim sDirectory As String
Dim sFileType As String

sDirectory = "C:\x"

Set colAtts = oMail.Attachments

If colAtts.Count Then
For Each oAtt In colAtts

sFileType = LCase$(Right$(oAtt.FileName, 4))

Select Case sFileType
Case ".xls", ".doc", ".pdf"
sFile = ATTACHMENT_DIRECTORY & oAtt.FileName
oAtt.SaveAsFile sFile
ShellExecute 0, "print", sFile, vbNullString, vbNullString, 0
End Select
Next
End If
End Sub


Sicher muss ich Outlook noch sagen, dass er das auch ausführen soll. Aber wie?
DIe Funktion einen Script per Regel auszuführen gibt es ja leider nicht mehr.

Ich bin für jede Hilfe dankbar.

Ich habe übrigens absolut keine Ahnung von VBA und Makros:-)

Gruß
Marc

Re: Anlagen automatisch drucken

Verfasst: Donnerstag, 12. Juli 2018 - 10:24 Uhr
von Heiko Schröder
Hallo,

ich kenne mich jetzt auch nicht so mit VBA Makros aus, aber mit dem Skript lassen sich aktuell nur Anhänge mit den Dateiendungen ".xls", ".doc", ".pdf" drucken. Vielleicht ist das, das Problem?
Sicher muss ich Outlook noch sagen, dass er das auch ausführen soll. Aber wie?
Ja, von allein führt das Outlook nicht aus.
In Outlook 2016 geben Sie in "Was möchten Sie tun?" das Wort Makro ein. Dann wählen Sie "Makros ausführen - Makros".
Dann wählen Sie das Makro aus und klicken auf AUSFÜHREN.