Druckfunktion in VBA: So kannst du einen Druckauftrag abbrechen
Schritt-für-Schritt-Anleitung
-
Öffne den VBA-Editor:
- Drücke
ALT
+ F11
, um den VBA-Editor zu öffnen.
-
Erstelle ein neues Modul:
- Rechtsklicke im Projekt-Explorer auf dein Projekt und wähle „Einfügen“ > „Modul“.
-
Füge den folgenden Code ein:
Sub PrintAllCPC()
On Error Resume Next
Dim dps As Boolean
dps = Application.Dialogs(xlDialogPrinterSetup).Show
If Not dps Then
' "Abbrechen" wurde gedrückt
Exit Sub
End If
Sheets(Array("CPC Overview", "CPC LOG", "CPC FIN", "CPC CCC")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Control Centre").Activate
End Sub
-
Speichere dein Projekt und schließe den VBA-Editor.
-
Führe das Makro aus, um die Druckfunktion mit Druckerauswahl zu testen.
Häufige Fehler und Lösungen
-
Fehler: Das Makro druckt trotzdem, obwohl „Abbrechen“ gewählt wurde.
- Lösung: Stelle sicher, dass die Variable
dps
korrekt geprüft wird. Der Code muss If Not dps Then
verwenden, um das Abbrechen zu berücksichtigen.
-
Fehler: Der Druckdialog erscheint nicht.
- Lösung: Überprüfe, ob der Code in einem Modus ausgeführt wird, der den Dialog zulässt.
Alternative Methoden
Eine alternative Methode zum Abbrechen eines Druckauftrags in Excel VBA ist die Verwendung von benutzerdefinierten Dialogen oder UserForms, um eine detailliertere Kontrolle über den Druckvorgang zu ermöglichen. Du könntest beispielsweise ein Formular erstellen, das die Druckeroptionen anzeigt und die Möglichkeit bietet, den Druckauftrag abzubrechen.
Praktische Beispiele
Hier ist ein Beispiel, wie du die Funktion in einem realen Szenario verwenden kannst:
Sub PrintReport()
' Diese Funktion druckt einen Bericht und erlaubt das Abbrechen des Druckauftrags
Dim dps As Boolean
dps = Application.Dialogs(xlDialogPrinterSetup).Show
If Not dps Then Exit Sub ' Druckauftrag abbrechen bei "Abbrechen"
Sheets("Report").PrintOut Copies:=1
End Sub
Diese Funktion ermöglicht es dir, einen Bericht auszudrucken und den Druckauftrag über die Druckerauswahl abzubrechen.
Tipps für Profis
- Nutze die
On Error Resume Next
Anweisung, um Programmabstürze zu vermeiden, aber sei vorsichtig, da sie auch das Debugging erschweren kann.
- Halte deinen Code sauber und dokumentiere wichtige Schritte, um die Wartung zu erleichtern.
- Experimentiere mit verschiedenen Druckoptionen in der
PrintOut
Methode, um das Druckerlebnis zu optimieren.
FAQ: Häufige Fragen
1. Wie kann ich eine Tastenkombination zum Abbrechen des Druckauftrags einrichten?
Du kannst eine Tastenkombination in den Excel-Optionen zuweisen, die das entsprechende Makro ausführt.
2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen (ab 2010) funktionieren, solange VBA unterstützt wird.
3. Kann ich den Druckauftrag auch direkt an einen bestimmten Drucker senden?
Ja, du kannst den Drucker direkt im PrintOut
Befehl angeben, indem du den Namen des Druckers hinzufügst.
4. Was mache ich, wenn ich mehrere Arbeitsblätter gleichzeitig drucken möchte?
Du kannst mehrere Arbeitsblätter in einem Array angeben, wie im Beispiel gezeigt: Sheets(Array("Sheet1", "Sheet2")).Select
.