Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Windows Standarddrucker ermitteln

VBA Windows Standarddrucker ermitteln
chrissey
Hallo Leut,
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
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Aktiver oder Standarddrucker?
19.02.2010 15:09:39
Björn
Hallo,
was genau willst Du? Du schreibst Standarddrucker und bringst dann eine Code-Zeile mit ActivePrinter.
Das sind 2 Paar Stiefel.
Möchtest du den Standarddrucker auf aktiv setzen?
Oder den aktiven auf standard?
Oder...
Gruß
Björn B.
AW: Aktiver oder Standarddrucker?
22.02.2010 08:19:22
chrissey
Guten Morgen,
ich möchte ein Sheet drucken. Da die Datei aber nicht nur von meinen PC aus gedruckt wird,
würde ich gerne via VBA den aktuellen Standard Drucker ( Windows ) des jeweiligen Systems
ermittlen und diesen als Drucker verwenden.
GRUß
Anzeige
AW: Aktiver oder Standarddrucker?
22.02.2010 08:21:55
Hajo_Zi
Hallo Chrissey,
warum diesen Aufwand, der wird doch automatisch verwendet, wenn Du keinen anderen zuweist.

das stimmt nur bedingt...
22.02.2010 11:38:49
Björn
Hallo,
der Standarddrucker wird zwar von Excel automatisch als Drucker genommen, aber nur so lange, bis der User einen anderen auswählt.
Beim nächsten Druck wird dann eben nicht der Standarddrucker genommen, sondern der zuletzt verwendete.
Das wirft dann aber die nächste Frage auf, warum Chrissey das so haben möchte...
Muss wirklich immer der Standarddrucker verwendet werden? Warum kann der User nicht selbst entscheiden, auf welchem Drucker gedruckt werden soll?
Vielleicht ist der Standarddrucker gerade "unpässlich" weil
- von anderen benutzt
- keine Tinte / Toner / Papier
- defekt
- ...
Da gebe ich jetzt Hajo wieder recht...
warum diesen Aufwand
Das würde ich mir sparen, wenn das nicht unbedingt sein muss.
Aber kleiner Tipp zur Lösung deines Problems:
Das ist KEINE Exceleinstellung, das gilt für Dein ganzes System, also vermute ich mal, dass es keinen einfachen VBA-Einzeiler geben wird, der das macht.
Wahrscheinlich geht das nur mit API, da kenne ich mich aber nicht aus,
Gruß
Björn B.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA zum Ermitteln des Windows Standarddruckers


Schritt-für-Schritt-Anleitung

Um den Windows Standarddrucker via VBA zu ermitteln, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. 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
  4. 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
  5. Schließe den VBA-Editor und führe das Makro PrintUsingDefaultPrinter aus, um den Standarddrucker anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Kein Standarddrucker gefunden"

    • Lösung: Stelle sicher, dass ein Standarddrucker auf deinem System eingerichtet ist. Überprüfe die Druckereinstellungen in der Systemsteuerung.
  • Fehler: Zugriff auf WMI-Objekt nicht möglich

    • Lösung: Stelle sicher, dass du über die erforderlichen Berechtigungen verfügst oder die WMI-Dienste auf deinem System aktiv sind.

Alternative Methoden

Wenn du keine VBA-Programmierung durchführen möchtest, kannst du auch den Standarddrucker direkt in Windows überprüfen:

  1. Gehe zu Einstellungen > Geräte > Drucker & Scanner.
  2. Hier siehst du den aktuell festgelegten Standarddrucker.
  3. Du kannst den Standarddrucker auch ändern, indem du auf den gewünschten Drucker klickst und Als Standard festlegen wählst.

Praktische Beispiele

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.


Tipps für Profis

  • Nutze Application.ActivePrinter in Kombination mit deinem VBA-Code, um temporär einen anderen Drucker während des Druckvorgangs festzulegen.
  • Berücksichtige, dass der Benutzer eine Auswahl hat, falls der Standarddrucker nicht verfügbar ist. Eine Fehlermeldung kann hilfreich sein.
  • Teste deinen Code regelmäßig, besonders nach Windows-Updates, da sich die Druckerkennung ändern könnte.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige