Drucken mit Vorschau in Excel VBA
Schritt-für-Schritt-Anleitung
Um mit Excel VBA eine Druckvorschau anzuzeigen, bevor der Druckvorgang gestartet wird, kannst du folgenden Code verwenden:
Private Sub CommandButton3_Click()
Dim strDruckbereich As String
strDruckbereich = ActiveSheet.PageSetup.PrintArea
ActiveSheet.PageSetup.PrintArea = "A1:AE29"
ActiveWindow.SelectedSheets.PrintPreview 'Seitenansicht
Application.OnTime Now + TimeSerial(0, 0, 1), "'PrintAreaReset """ & strDruckbereich & """'"
End Sub
Sub PrintAreaReset(strDruckbereich As String)
ActiveSheet.PageSetup.PrintArea = strDruckbereich
End Sub
Dieser Code zeigt die Druckvorschau für den Bereich A1:AE29 an und stellt den vorherigen Druckbereich wieder her, nachdem der Druckvorgang abgeschlossen oder die Vorschau verlassen wurde.
Häufige Fehler und Lösungen
Fehler 1: Excel druckt sofort, ohne die Druckvorschau anzuzeigen.
Lösung: Stelle sicher, dass du die PrintPreview
-Methode verwendest, wie im obigen Beispiel gezeigt. Verwende nicht die PrintOut
-Methode ohne das Preview:=True
Argument.
Fehler 2: Der Druckbereich wird nicht korrekt zurückgesetzt.
Lösung: Überprüfe, ob der PrintAreaReset
Sub korrekt aufgerufen wird und der alte Druckbereich als Argument übergeben wird.
Alternative Methoden
Wenn du eine Benutzerform (Userform) zum Drucken mit Vorschau verwenden möchtest, kannst du den folgenden Code verwenden:
Private Sub btnDrucken_Click()
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Dieser Code kann in einer Userform eingebettet werden, um die Druckvorschau zu starten, ohne dass ein spezifischer Druckbereich festgelegt werden muss.
Praktische Beispiele
-
Drucken eines spezifischen Bereichs mit Vorschau:
- Verwende den oben genannten Code in einem Makro, um den Bereich A1:AE29 anzuzeigen.
-
Drucken mit Auswahlmenü:
- Mit dem folgenden Code kannst du das Druckerauswahlmenü anzeigen, bevor der Druckvorgang beginnt:
Sub DruckenMitAuswahl()
Application.Dialogs(xlDialogPrint).Show
End Sub
Tipps für Profis
- Nutze die
Application.ScreenUpdating = False
und Application.ScreenUpdating = True
, um die Bildschirmaktualisierung während des Druckvorgangs zu deaktivieren, was die Leistung verbessert.
- Teste deinen Code gründlich, um sicherzustellen, dass Excel nicht anders druckt als angezeigt.
- Füge Kommentare in deinen VBA-Code ein, um die Funktionsweise zu erläutern und die Wartung zu erleichtern.
FAQ: Häufige Fragen
1. Wie kann ich die Druckvorschau direkt in einer Userform integrieren?
Du kannst die PrintPreview
-Methode in einem Button-Klick-Ereignis der Userform verwenden, um die Druckvorschau anzuzeigen.
2. Was tun, wenn Excel druckt, ohne die Vorschau anzuzeigen?
Stelle sicher, dass du PrintPreview
anstelle von PrintOut
ohne das Preview
-Argument verwendest. Überprüfe auch, ob es andere Makros oder Einstellungen gibt, die das Verhalten beeinflussen.