Microsoft Print to PDF in Excel VBA nutzen
Schritt-für-Schritt-Anleitung
Um den Drucker "Microsoft Print to PDF" in Excel VBA zu verwenden, kannst du den folgenden VBA-Code nutzen. Damit wird sichergestellt, dass der richtige Drucker verwendet wird, um eine PDF-Datei zu erstellen.
- Öffne den VBA-Editor: Drücke
Alt + F11
in Excel.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" und wähle
Einfügen > Modul
.
- Gib den folgenden Code ein:
Sub ExportAsPDF()
Dim wksAusdruck As Worksheet
Set wksAusdruck = ThisWorkbook.Worksheets("wksAusdruck")
' Stelle den Drucker ein
Application.ActivePrinter = "Microsoft Print to PDF auf NE05:"
' Exportiere das Blatt als PDF
With wksAusdruck
.ExportAsFixedFormat Type:=xlTypePDF, From:=1, To:=1, _
Filename:="C:\Pfad\zu\deiner\Datei.pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With
End Sub
Ersetze "C:\Pfad\zu\deiner\Datei.pdf"
mit dem gewünschten Speicherort.
Häufige Fehler und Lösungen
-
Fehler: Microsoft Print to PDF funktioniert nicht
- Stelle sicher, dass der Drucker installiert ist. Überprüfe die Druckereinstellungen in Windows.
-
Fehler: Microsoft Print to PDF nicht vorhanden
- Überprüfe in der Systemsteuerung, ob der Drucker korrekt installiert und aktiviert ist.
-
Fehler: Anwendung verwendet den falschen Drucker
- Stelle den Drucker in deinem VBA-Code explizit ein mit
Application.ActivePrinter = "Microsoft Print to PDF auf NE05:"
. Achte darauf, den korrekten Port zu verwenden.
Alternative Methoden
Wenn du häufig zwischen verschiedenen Druckern wechseln musst oder der Druckername variieren kann, kannst du eine Funktion erstellen, die alle installierten Drucker auflistet und den richtigen Drucker auswählt.
Hier ist ein Beispiel für eine Funktion, die eine Liste der Drucker zurückgibt:
Public Function ListPrinter() As Variant
Dim oReg As Object, i As Long
Dim arrPrinter As Variant
' ... (Rest des Codes wie im vorherigen Abschnitt) ...
For i = 0 To UBound(arrPrinter)
If arrPrinter(i) = "Microsoft Print to PDF" Then
ListPrinter = arrPrinter(i)
Exit Function
End If
Next
End Function
Praktische Beispiele
Hier sind einige Beispiele, wie du "Microsoft Print to PDF" in verschiedenen Szenarien nutzen kannst:
- PDF mit benutzerdefiniertem Namen speichern:
Filename = "C:\Pfad\zu\deiner\Datei_" & Format(Now(), "yyyymmdd_hhnnss") & ".pdf"
- Druckqualität anpassen:
Um die Druckqualität zu ändern, kannst du die Quality
-Option anpassen. Beispiel:
Quality:=xlQualityMinimum ' Für eine niedrigere Qualität
Tipps für Profis
-
Drucker dynamisch ermitteln: Verwende die oben genannte ListPrinter
-Funktion, um den Drucker dynamisch zu ermitteln, bevor du den Export durchführst.
-
Automatisches Speichern aktivieren: Um die PDF-Datei automatisch zu speichern, kannst du die Option OpenAfterPublish:=False
weglassen, wenn du die Datei nach dem Erstellen öffnen möchtest.
-
PDF-Formate hinzufügen: In den Druckereinstellungen kannst du verschiedene Formate für den PDF-Druck hinzufügen.
FAQ: Häufige Fragen
1. Frage
Wie kann ich sicherstellen, dass immer der richtige Drucker verwendet wird?
Antwort: Verwende den VBA-Befehl Application.ActivePrinter
, um den Drucker explizit festzulegen.
2. Frage
Was kann ich tun, wenn "Microsoft Print to PDF" nicht angezeigt wird?
Antwort: Stelle sicher, dass der Drucker in Windows installiert und aktiviert ist. Du kannst auch die Systemsteuerung überprüfen.
3. Frage
Kann ich die PDF-Datei in einem bestimmten Ordner speichern?
Antwort: Ja, du kannst den vollständigen Pfad in der Filename
-Eigenschaft angeben, um den Speicherort der PDF-Datei festzulegen.