Auswahl Drucker per VBA-Makro

Moderator: ModerationP

Auswahl Drucker per VBA-Makro

Beitragvon RTausD » 24. Jul 2021, 00:14

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
RTausD
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 280
Registriert: 24. Feb 2007, 10:51

Re: Auswahl Drucker per VBA-Makro

Beitragvon mmarkus » 24. Jul 2021, 21:08

Hier habe ich kürzlich eine Lösung gepostet:

viewtopic.php?f=167&t=868124
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2143
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: Auswahl Drucker per VBA-Makro

Beitragvon RTausD » 25. Jul 2021, 09:42

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?
RTausD
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 280
Registriert: 24. Feb 2007, 10:51

Re: Auswahl Drucker per VBA-Makro

Beitragvon mmarkus » 25. Jul 2021, 17:31

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.
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2143
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich


Zurück zu Outlook Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast