Seite 1 von 1

Auswahl Drucker per VBA-Makro

BeitragVerfasst: 24. Jul 2021, 00:14
von RTausD
Hallo allerseits,

ich habe ein Makro, mit dem ich die PDF-Dateianhänge ausgewählter eMails ausdrucken kann.

Code: Alles auswählen
Private Declare PtrSafe 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
Sub PDF_Anhang_to_TXT()
    Temppfad = "T:\Müll\"
    Dim aktuelle_eMail As MailItem
    Dim Anzahl_Dateianhänge As Integer
    Set Auswahl = Application.ActiveExplorer.Selection
    For Each aktuelle_eMail In Auswahl
        Anzahl_Dateianhänge = aktuelle_eMail.Attachments.Count
        If Anzahl_Dateianhänge > 0 Then
            For Z = Anzahl_Dateianhänge To 1 Step -1
                Datei = aktuelle_eMail.Attachments.Item(Z).FileName
                If Format(Right(aktuelle_eMail.Attachments.Item(Z).FileName, 3), ">") = "PDF" Then
                    Ziel = Temppfad & Datei
                    aktuelle_eMail.Attachments.Item(Z).SaveAsFile Ziel
                    ShellExecute 0, "print", Ziel, vbNullString, vbNullString, 0
                    On Error Resume Next
                    Kill Ziel
                    On Error GoTo 0
               End If
            Next Z
        End If
    Next
End Sub


Jetzt würde ich das gerne noch erweitern und einen bestimmten Drucker auswählen.
In Excel geht das mit folgendem Code:

Code: Alles auswählen
                    Application.ActivePrinter = "PDFCreator auf Ne00:"
                    ShellExecute 0, "print", Ziel, vbNullString, vbNullString, 0
                    Application.ActivePrinter = "HP Color LaserJet MFP M283fdn auf Ne03:"


Leider funktioniert das in Outlook nicht.

Hat jemand eine Idee, wie das in Outlook funktioniert?

Vielen Dank im Voraus

Rolf

Re: Auswahl Drucker per VBA-Makro

BeitragVerfasst: 24. Jul 2021, 21:08
von mmarkus
Hier habe ich kürzlich eine Lösung gepostet:

viewtopic.php?f=167&t=868124

Re: Auswahl Drucker per VBA-Makro

BeitragVerfasst: 25. Jul 2021, 09:42
von RTausD
VIELEN DANK für den Hinweis.

Mit dem nachfolgenden Befehl öffnet sich bei mir aber nur der Druckdialog.
Der Druck wird nicht automatisch an den Drucker geschickt.

Code: Alles auswählen
Call ShellExecute(0&, "printto", Druckdatei, Chr(34) & "HP Color LaserJet MFP M283fdn" & Chr(34), vbNullString, 0&)


Was muss ich noch tun?

Re: Auswahl Drucker per VBA-Makro

BeitragVerfasst: 25. Jul 2021, 17:31
von mmarkus
RTausD hat geschrieben:Was muss ich noch tun?


Ich vermute mal, dass der Drucker nicht gefunden wird.

Gib mal für einen Test irgend eine Druckernamen an der nicht existiert und schau ob das Verhalten gleich ist.

Ansonsten gibt es zu dem Befehl keine Dokumentation die man ansehen könnte.

Aber im Prinzip kann nur eine der beiden Angaben falsch sein.

Edit: Es ist natürlich auch durchaus möglich, dass das ausführende Programm ein Problem mit den Leerzeichen im Druckernamen hat, wenn das via Shell übermittelt wird.
Einfach mal den Namen ändern und testen.