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:
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.
-
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
-
Ändere den Pfad: Ersetze "C:\Dein\Pfad\Zu\PDFs\"
mit dem tatsächlichen Pfad zu deinen PDF-Dateien.
-
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
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.