Drucker mit VBA ändern
Schritt-für-Schritt-Anleitung
Um einen Drucker in Excel mit VBA auszuwählen und danach den Standarddrucker wiederherzustellen, kannst du das folgende Makro verwenden. Dieses Beispiel zeigt, wie du einen Drucker ändern und anschließend wieder den vorherigen Standarddrucker einstellen kannst.
Sub DruckeBereich()
Dim strDruckerAktiv As String
Dim sStdDrucker As String
Dim i As Integer, max As Integer, vz As Integer, bz As Integer
' Standarddrucker sichern
sStdDrucker = Application.ActivePrinter
' Drucker einstellen
Application.ActivePrinter = "TEC B-SA4T (203 dpi) auf Ne02:"
max = Sheets("Eingabe").Range("C6").Value
If max > 40 Then max = 40
For i = 1 To max
vz = i * 2 - 1
bz = i * 2
Worksheets("Palettenaufkleber").Range("A" & vz & ":D" & bz).PrintOut Copies:=1
Next i
max = Sheets("Eingabe").Range("C8").Value
If max > 500 Then max = 500
For i = 1 To max
vz = i * 2 - 1
bz = i * 2
Worksheets("PE-Aufkleber Einzel").Range("A" & vz & ":D" & bz).PrintOut Copies:=1
Next i
' Standarddrucker wieder herstellen
Application.ActivePrinter = sStdDrucker
End Sub
Dieses Makro stellt sicher, dass nach dem Drucken mit einem spezifischen Drucker der ursprüngliche Standarddrucker wieder aktiviert wird.
Häufige Fehler und Lösungen
-
Fehler: "Drucker nicht gefunden"
- Lösung: Überprüfe den Namen des Druckers in der Zeile
Application.ActivePrinter = "TEC B-SA4T (203 dpi) auf Ne02:"
. Stelle sicher, dass der Drucker korrekt benannt ist.
-
Fehler: Drucken funktioniert nicht
- Lösung: Stelle sicher, dass die Arbeitsblätter "Palettenaufkleber" und "PE-Aufkleber Einzel" existieren. Überprüfe auch, ob die Range-Angaben korrekt sind.
-
Fehler: Standarddrucker wird nicht wiederhergestellt
- Lösung: Stelle sicher, dass die Variable
sStdDrucker
korrekt gesetzt ist, bevor der Drucker gewechselt wird.
Alternative Methoden
Eine alternative Methode, um den Drucker in Excel mit VBA auszuwählen, besteht darin, den aktuellen Drucker zu speichern, bevor du einen neuen Drucker einstellst. Hier ist ein Beispiel:
Sub DruckerWechseln()
Dim savPrinter As String
savPrinter = Application.ActivePrinter
Application.ActivePrinter = "WinFax Pro 9.0"
' Druckvorgang hier durchführen
Application.ActivePrinter = savPrinter
End Sub
Mit dieser Methode kannst du den Drucker einfach für temporäre Druckaufträge ändern.
Praktische Beispiele
Ein praktisches Beispiel für das Drucken von Palettenaufklebern und anderen Etiketten könnte wie folgt aussehen:
Sub DruckenBeispiel()
' Drucke 10 Palettenaufkleber
For i = 1 To 10
Worksheets("Palettenaufkleber").PrintOut
Next i
End Sub
Du kannst das Beispiel anpassen, um unterschiedliche Drucker auszuwählen oder verschiedene Bereiche zu drucken.
Tipps für Profis
- Verwende
Application.Printer
statt ActivePrinter
, wenn du eine Liste aller verfügbaren Drucker abrufen möchtest.
- Achte darauf, dass deine VBA-Variablen klar strukturiert sind. Verwende Typen wie
As Integer
oder As String
, um die Lesbarkeit und Effizienz deines Codes zu verbessern.
- Nutze die Möglichkeit, über den
PrintOut
-Befehl verschiedene Optionen, wie z.B. Copies:=2
für Mehrfachdrucke, zu konfigurieren.
FAQ: Häufige Fragen
1. Wie kann ich den Standarddrucker in Excel festlegen?
Du kannst den Standarddrucker in Excel festlegen, indem du den Drucker mit dem Befehl Application.ActivePrinter
auswählst und sicherstellst, dass es der gewünschte Drucker ist.
2. Was mache ich, wenn mein Drucker nicht aufgelistet ist?
Überprüfe die Druckereinstellungen in Windows und stelle sicher, dass der Drucker korrekt installiert und angeschlossen ist. Starte Excel neu, um die Druckerliste zu aktualisieren.
3. Ist es möglich, mehrere Drucker in einem Makro zu verwenden?
Ja, du kannst mehrere Drucker innerhalb eines Makros verwenden, indem du die ActivePrinter
-Eigenschaft mehrfach änderst und den gewünschten Drucker für jeden Druckvorgang auswählst.