Frage:
Kann ich irgendwie via VBA den Windows Standarddrucker ermitteln?
Application.ActivePrinter = "?"
Das wäre super, wenn das ginge?
Danke Euch schon mal im Voraus und wünsche Euch ein schönes WE
Grüße
Chrissey
warum diesen Aufwand
Das würde ich mir sparen, wenn das nicht unbedingt sein muss.Um den Windows Standarddrucker via VBA zu ermitteln, kannst du folgende Schritte befolgen:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke im Menü auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Function GetDefaultPrinter() As String
Dim objWMI As Object
Dim objPrinter As Object
Dim colPrinters As Object
Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
Set colPrinters = objWMI.ExecQuery("Select * from Win32_Printer")
For Each objPrinter In colPrinters
If objPrinter.Default = True Then
GetDefaultPrinter = objPrinter.Name
Exit Function
End If
Next
GetDefaultPrinter = "Kein Standarddrucker gefunden"
End Function
Um den Standarddrucker zu verwenden, kannst du die Funktion folgendermaßen aufrufen:
Sub PrintUsingDefaultPrinter()
Dim printerName As String
printerName = GetDefaultPrinter()
MsgBox "Der Standarddrucker ist: " & printerName
End Sub
Schließe den VBA-Editor und führe das Makro PrintUsingDefaultPrinter
aus, um den Standarddrucker anzuzeigen.
Fehler: "Kein Standarddrucker gefunden"
Fehler: Zugriff auf WMI-Objekt nicht möglich
Wenn du keine VBA-Programmierung durchführen möchtest, kannst du auch den Standarddrucker direkt in Windows überprüfen:
Einstellungen
> Geräte
> Drucker & Scanner
.Als Standard festlegen
wählst.Ein einfaches Beispiel, um einen Dokumentendruck über den Standarddrucker zu initiieren:
Sub PrintDocument()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Tabelle1") ' Ändere "Tabelle1" auf deinen Sheet-Namen
ws.PrintOut
End Sub
Dieses Skript druckt das angegebene Arbeitsblatt direkt an den Standarddrucker, ohne dass du ihn manuell auswählen musst.
Application.ActivePrinter
in Kombination mit deinem VBA-Code, um temporär einen anderen Drucker während des Druckvorgangs festzulegen.1. Wie kann ich den Standarddrucker ohne VBA ermitteln?
Du kannst den Standarddrucker über die Windows-Systemsteuerung unter Geräte
> Drucker & Scanner
einsehen.
2. Ist der Code mit allen Excel-Versionen kompatibel?
Ja, der vorgestellte VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange das System WMI unterstützt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen