PDF Dateien drucken mit VBA in Excel
Schritt-für-Schritt-Anleitung
-
Öffne Excel und erstelle eine neue Arbeitsmappe.
-
Füge einen Button hinzu (Entwicklertools > Einfügen > Schaltfläche).
-
Doppelklicke auf den Button, um den VBA-Editor zu öffnen.
-
Füge den folgenden Code in das Codefenster ein:
Private Sub CommandButton1_Click()
' PrintPDF
Dim sPath As String, i As Integer
MsgBox ("Bitte dein Pfad zum Acrobat Reader anpassen!" & vbLf & "zur acrord32.exe")
sPath = "D:\PDF\" 'Hier das Verzeichnis angeben wo die PDF Dateien liegen
With Application.FileSearch
.NewSearch
.LookIn = sPath
.Filename = "*.pdf"
.Execute
Range("B2").Value = .FoundFiles.Count
For i = 1 To .FoundFiles.Count
Shell ("C:\Programme\Adobe\Acrobat 7.0\Reader\acrord32.exe /p /h " & _
.FoundFiles(i))
Cells(i + 1, 1).Value = .FoundFiles(i)
Range("D2").Value = i
Next i
End With
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Klicke auf den Button, um den Druckvorgang zu starten.
Dieser Code ermöglicht es Dir, mehrere PDF-Dateien aus einem bestimmten Ordner zu drucken, ohne die Dateien vorher zu öffnen. Stelle sicher, dass der Pfad zum Acrobat Reader korrekt ist.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du eine andere Möglichkeit suchst, PDF-Dateien zu drucken, kannst Du auch PowerShell verwenden. Hier ein einfaches Beispiel:
Get-ChildItem "D:\PDF\*.pdf" | ForEach-Object {
Start-Process -FilePath $_.FullName -Verb Print
}
Diese Methode ermöglicht es, alle PDFs im angegebenen Ordner direkt zu drucken.
Praktische Beispiele
Hier ist ein Beispiel, wie Du die Anzahl der zu druckenden Dateien in einer Zelle anzeigen kannst, bevor Du mit dem Drucken beginnst:
Range("B2").Value = .FoundFiles.Count ' Anzahl der PDF-Dateien
Das ist besonders nützlich, um sicherzustellen, dass die richtigen Dateien gefunden wurden, bevor Du den Druckvorgang startest.
Tipps für Profis
- Nutze Fehlerbehandlung in Deinem VBA-Code, um unerwartete Probleme zu vermeiden. Ein einfaches
On Error Resume Next kann helfen, unerwartete Fehler zu ignorieren.
- Überlege, ob Du die PDFs im Hintergrund drucken möchtest, um die Benutzeroberfläche nicht zu blockieren. Dies kann durch die Verwendung von
Shell mit dem /h (hidden) Parameter erreicht werden.
FAQ: Häufige Fragen
1. Wie kann ich mehrere PDF-Dateien drucken?
Du kannst den bereitgestellten VBA-Code verwenden, um alle PDF-Dateien in einem bestimmten Ordner nacheinander zu drucken.
2. Funktioniert dieser Code für alle Excel-Versionen?
Der Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen, jedoch kann es Unterschiede in der Handhabung der FileSearch-Funktion geben.
3. Kann ich auch andere Dateitypen drucken?
Ja, Du kannst den Dateifilter in der Filename-Eigenschaft anpassen, um andere Dateitypen zu drucken.