Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

PDF drucken über ShellExecute

Forumthread: PDF drucken über ShellExecute

PDF drucken über ShellExecute
Peter
Hallo zusammen,
im Zusammenhang mit dem automatisierten Drucken von PDF-Dateien hab' ich ein kleines Problem ... und die Hoffnung, dass es schon mal gelöst wurde :-)
Ich laufe durch ein Verzeichnis und drucke alle darin befindlichen PDF-Dateien mittels des folgenden Befehles aus:
Call ShellExecute(0, "print", strFileName, "", "", SW_MINIMIZE)
Nun öffnet sich dabei jedesmal der Acrobat Reader :-( und dass soll er nicht
Habt Ihr eine Idee, was ich gegen dieses automatische Öffnen machen kann?
Vielen Dank für jede Hilfe und sonnige Grüße
Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: PDF drucken über ShellExecute
05.07.2012 13:06:32
mark
Hallo Peter,
warum startest Du die EXE nicht mit dem Parameter vbhide (verborgen).
Shell (".....exe"), vbHide
Gruß
Mark
AW: PDF drucken über ShellExecute
05.07.2012 13:20:04
Peter
Hallo Mark,
meinst Du den Reader?
Den starte ich gar nicht ... der wird durch meinen Druck-Aufruf automatisch gestartet ...
Gruß
Peter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

PDF-Drucken über ShellExecute in Excel VBA


Schritt-für-Schritt-Anleitung

Um PDF-Dateien über ShellExecute in Excel VBA zu drucken, ohne dass der Acrobat Reader geöffnet wird, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Sub PrintPDFsInFolder()
       Dim strFileName As String
       Dim strFolderPath As String
    
       strFolderPath = "C:\Dein\Pfad\Zu\PDFs\" ' Ändere den Pfad entsprechend
       strFileName = Dir(strFolderPath & "*.pdf")
    
       Do While strFileName <> ""
           Call ShellExecute(0, "print", strFolderPath & strFileName, "", "", vbHide)
           strFileName = Dir
       Loop
    End Sub
  4. Ändere den Pfad: Ersetze "C:\Dein\Pfad\Zu\PDFs\" mit dem tatsächlichen Pfad zu deinen PDF-Dateien.

  5. Führe das Makro aus: Du kannst das Makro ausführen, indem du im VBA-Editor F5 drückst oder über Excel das Makro auswählst und auf „Ausführen“ klickst.


Häufige Fehler und Lösungen

  • Problem: Der Acrobat Reader öffnet sich beim Drucken.

    • Lösung: Stelle sicher, dass du den Parameter vbHide in deinem ShellExecute-Befehl verwendest. Dies sollte das Problem lösen.
  • Problem: PDF-Dateien werden nicht gefunden.

    • Lösung: Überprüfe den angegebenen Dateipfad und stelle sicher, dass die Endung .pdf korrekt ist.

Alternative Methoden

Falls ShellExecute nicht die gewünschte Funktionalität bietet, kannst du auch die WScript.Shell-Methode verwenden. Hier ist ein Beispiel:

Sub PrintUsingWScript()
    Dim wsh As Object
    Set wsh = CreateObject("WScript.Shell")
    wsh.Run "AcroRd32.exe /t ""C:\Dein\Pfad\Zu\PDF.pdf"" ""Druckername""", 0, True
End Sub

Praktische Beispiele

Hier ist ein Beispiel, wie du mehrere PDFs drucken kannst, ohne dass der Reader geöffnet wird. Das Beispiel greift auf die oben genannten Methoden zurück, um die Effizienz zu maximieren:

Sub PrintMultiplePDFs()
    Dim files As Variant
    Dim file As Variant

    files = Array("C:\Dein\Pfad\Zu\PDF1.pdf", "C:\Dein\Pfad\Zu\PDF2.pdf")

    For Each file In files
        Call ShellExecute(0, "print", file, "", "", vbHide)
    Next file
End Sub

Tipps für Profis

  • Nutze die ShellExecute-Methode in Kombination mit anderen Automatisierungstools in Excel, um den Druckprozess weiter zu optimieren.
  • Überlege dir, wie du Fehlermeldungen besser erfassen kannst, um die Automatisierung robuster zu gestalten.
  • Teste die Druckbefehle zunächst mit einer kleinen Anzahl an Dateien, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Drucker auswählen, auf dem die PDFs gedruckt werden?
Antwort: In der ShellExecute-Methode kannst du den Druckernamen angeben, indem du den dritten Parameter entsprechend anpasst. Alternativ kannst du die WScript.Shell-Methode verwenden, um spezifische Drucker zu definieren.

2. Frage
Funktioniert dies in allen Excel-Versionen?
Antwort: Ja, die ShellExecute-Methode sollte in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt wird. Achte darauf, dass der Acrobat Reader installiert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige