Userform Fenster drucken in Excel VBA
Schritt-für-Schritt-Anleitung
Um ein Userform-Fenster in Excel VBA zu drucken und die Druckerauswahl anzuzeigen, folge diesen Schritten:
-
Öffne den VBA-Editor: Drücke ALT + F11
.
-
Füge ein neues Modul hinzu: Gehe zu Einfügen > Modul
.
-
Füge den folgenden Code ein:
Option Explicit
Private Declare Function MapVirtualKeyA Lib "user32.dll" ( _
ByVal wCode As Long, _
ByVal wMapType As Long) As Long
Private Declare Sub keybd_event Lib "user32.dll" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP As Long = &H2
Public Sub PrintUserForm()
Dim lngAltScan As Long
Dim objWorksheet As Worksheet
lngAltScan = MapVirtualKeyA(vbKeyMenu, 0&)
Call keybd_event(vbKeyMenu, lngAltScan, 0&, 0&)
Call keybd_event(vbKeySnapshot, 0&, 0&, 0&)
DoEvents
Call keybd_event(vbKeyMenu, lngAltScan, KEYEVENTF_KEYUP, 0&)
Set objWorksheet = ThisWorkbook.Worksheets.Add
With objWorksheet
Call .Paste
.PageSetup.Orientation = xlLandscape
Call .PrintOut
Application.DisplayAlerts = False
Call .Delete
Application.DisplayAlerts = True
End With
Set objWorksheet = Nothing
End Sub
-
Erstelle einen Button im Userform: Füge einen CommandButton
hinzu, um den Druckvorgang zu starten.
-
Füge den folgenden Code zum Button hinzu:
Private Sub CommandButton1_Click()
Call PrintUserForm
End Sub
Mit diesem Code kannst du das Userform drucken und gleichzeitig das Fenster zur Druckerauswahl aufrufen.
Häufige Fehler und Lösungen
-
Problem: Das Userform wird nicht korrekt gedruckt.
- Lösung: Stelle sicher, dass du den
PrintUserForm
-Befehl korrekt aufrufst und dass das Userform sichtbar ist.
-
Problem: Druckformat wird nicht beachtet.
- Lösung: Überprüfe die Druckereinstellungen im Dialogfenster und stelle sicher, dass das Format auf Querformat oder Hochformat eingestellt ist.
-
Problem: Fehler bei Call .Paste
.
- Lösung: Dieser Fehler kann sporadisch auftreten. Stelle sicher, dass das Userform aktiv ist, wenn du den Druckbefehl ausführst.
Alternative Methoden
Eine alternative Methode besteht darin, das Userform als Bild zu speichern und dann zu drucken. Hier ein Beispielcode:
Public Sub SaveUserFormAsImage()
' Speichern des Userforms als Bild
' Hier könnte der Code folgen, um das Userform als Screenshot zu speichern und zu drucken.
End Sub
Diese Methode ist nützlich, wenn du das Userform als Fensterbilder drucken
möchtest.
Praktische Beispiele
-
Drucken eines Userforms mit spezifischer Druckerauswahl:
Public Sub PrintWithPrinterSelection()
If Application.Dialogs(xlDialogPrinterSetup).Show Then
Call PrintUserForm
End If
End Sub
-
Drucken des Userforms als PDF:
Call .ExportAsFixedFormat(Type:=xlTypePDF, Filename:="C:\Path\To\Your\File.pdf", OpenAfterPublish:=True)
Diese Beispiele zeigen, wie du die Funktionalität des excel makro drucken mit druckerauswahl
erweitern kannst.
Tipps für Profis
- Überlege, die Druckereinstellungen über VBA zu steuern, um spezifische Formate zu setzen.
- Nutze
PrintForm
in Kombination mit der Druckerauswahl
, um sicherzustellen, dass das richtige Gerät verwendet wird.
- Halte deine VBA-Bibliotheken aktuell, um sicherzustellen, dass alle Funktionen reibungslos laufen.
FAQ: Häufige Fragen
1. Wie kann ich das Userform als PDF speichern?
Du kannst den Befehl ExportAsFixedFormat
verwenden, um das Userform als PDF zu speichern.
2. Funktioniert dieser Code in allen Excel-Versionen?
Der bereitgestellte Code sollte in den meisten modernen Excel-Versionen funktionieren, insbesondere ab Excel 2010.
3. Kann ich mehrere Userforms drucken?
Ja, du kannst die PrintForm
-Funktion für jedes Userform aufrufen, um sie nacheinander zu drucken.