Druckereinstellungen über VBA anpassen
Schritt-für-Schritt-Anleitung
Um die Druckereinstellungen in Excel über VBA zu ändern und den Standarddrucker auszuwählen, kannst du die folgenden Schritte befolgen:
-
Öffne den VBA-Editor in Excel (Alt + F11).
-
Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject", dann "Einfügen" > "Modul").
-
Kopiere und füge den folgenden Code ein:
Option Explicit
Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Function GetDefaultPrinter() As String
Dim TempName As String
Dim DeviceNr As Long
TempName = String(1024, 0)
DeviceNr = GetProfileString("windows", "device", 0&, TempName, 1024)
If DeviceNr > 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
End If
End Function
Sub PDF()
On Error GoTo Ende
Application.ActivePrinter = GetDefaultPrinter
Ende:
End Sub
-
Verknüpfe die Schaltfläche in deinem Tool mit der Subroutine PDF()
.
-
Teste die Funktion, um sicherzustellen, dass der Standarddrucker korrekt ausgewählt wird.
Häufige Fehler und Lösungen
-
Fehlermeldung im If-Block: Wenn du eine Fehlermeldung wegen des If-Blocks erhältst, stelle sicher, dass du das End If
richtig positionierst. Das End If
muss nach der Anweisung stehen, die innerhalb des If-Blocks ausgeführt wird.
-
Der Standarddrucker wird nicht eingestellt: Überprüfe, ob die Funktion GetDefaultPrinter()
korrekt aufgerufen wird. Wenn du das Makro in ein bestehendes Tool einfügst, kann es sein, dass es an anderer Stelle einen Konflikt gibt.
Alternative Methoden
Eine alternative Möglichkeit, die Druckereinstellungen über VBA zu ändern, wäre das Nutzen von Excel-eigenen Funktionen oder das Hinzufügen einer Benutzeroberfläche, um den Drucker auszuwählen. Hier ist ein Beispiel, wie du einen Dialog zur Druckerauswahl erstellen kannst:
Sub DruckerAuswählen()
Dim DruckerName As String
DruckerName = Application.InputBox("Gib den Namen des Druckers ein:", "Drucker auswählen", Type:=2)
Application.ActivePrinter = DruckerName
End Sub
Praktische Beispiele
Hier sind einige Beispiele, wie du die Excel Druckeinstellungen in verschiedenen Szenarien anpassen kannst:
-
PDF erstellen und Drucker wechseln:
Du kannst zuerst die PDF-Erstellung durchführen und danach den Drucker auf den Standarddrucker zurücksetzen.
Sub ErstellenUndDrucken()
Call PDF 'PDF erstellen
Application.ActivePrinter = GetDefaultPrinter 'Zurücksetzen auf Standarddrucker
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
-
Drucker für jeden Benutzer automatisch einstellen:
Verwende die Funktion GetDefaultPrinter
, um den Drucker automatisch auszuwählen, basierend auf den Systemsteuerungseinstellungen.
Tipps für Profis
-
Drucker als Standard definieren: Wenn du sicherstellen möchtest, dass immer der richtige Drucker verwendet wird, kannst du ein Makro erstellen, dass den Standarddrucker für jeden Benutzer beim Öffnen der Datei überprüft und gegebenenfalls ändert.
-
Druckereinstellungen speichern: Du kannst die letzten Druckereinstellungen in einer Excel-Datei speichern, um sie später wiederherzustellen, falls das nötig ist.
FAQ: Häufige Fragen
1. Wie kann ich den Standarddrucker in Excel festlegen?
Um den Standarddrucker in Excel festzulegen, kannst du die Systemsteuerung verwenden. Alternativ kannst du in deinem VBA-Code die Funktion GetDefaultPrinter
nutzen.
2. Gibt es eine Möglichkeit, mehrere Drucker in VBA auszuwählen?
Ja, du kannst eine Liste der verfügbaren Drucker abrufen und dann den Benutzer auffordern, einen Drucker auszuwählen. Dies kann über ein Eingabefeld oder durch eine Benutzeroberfläche geschehen.