Aktiven Drucker in Outlook mit VBA ermitteln und festlegen
Schritt-für-Schritt-Anleitung
Um den aktiven Drucker in Outlook mit VBA zu ermitteln und eventuell den Outlook Standarddrucker einzustellen, kannst du folgenden Code verwenden:
Sub standarddrucker()
'Standarddrucker ermitteln
Dim objWMI As Object, objItem As Object
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
ExecQuery("Select * from Win32_Printer where Default = 'true'")
For Each objItem In objWMI
MsgBox objItem.properties_.Item("Name").Value
Next
Set objWMI = Nothing
End Sub
Sub drucker_als_standard()
Dim oWMI As Object, colInstalledPrinters As Object, oPrinter As Object
Dim sPrinterName As String
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
sPrinterName = "HP Deskjet F300 series" 'anpassen
Set colInstalledPrinters = oWMI.ExecQuery("SELECT * FROM Win32_Printer WHERE Name = '" & sPrinterName & "'")
' Drucker als Standard-Drucker festlegen
For Each oPrinter In colInstalledPrinters
oPrinter.SetDefaultPrinter
Next
Set oWMI = Nothing
End Sub
Dieser Code ermittelt zunächst den Standarddrucker und zeigt ihn in einer Meldung an. Der zweite Teil des Codes setzt einen spezifischen Drucker als Standarddrucker.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode besteht darin, den aktiven Drucker über Word zu ermitteln und dann die Informationen in Outlook zu verwenden. Dies könnte so aussehen:
Sub aktivenDruckerErmitteln()
Dim druckerName As String
druckerName = Application.ActivePrinter
MsgBox "Aktiver Drucker: " & druckerName
End Sub
Diese Methode erfordert jedoch, dass Word installiert ist und könnte nicht für alle Benutzer eine praktikable Lösung darstellen.
Praktische Beispiele
- Beispiel 1: Um den aktiven Drucker in Outlook anzuzeigen, kannst du den oben genannten Code in ein Modul einfügen und ausführen.
- Beispiel 2: Um den Drucker "HP Deskjet F300 series" als Standarddrucker festzulegen, ändere einfach den Druckernamen im Code und führe
drucker_als_standard
aus.
Tipps für Profis
- Nutze die
GetObject
-Methode, um auf Systeminformationen zuzugreifen. Dies ist eine leistungsstarke Methode, um verschiedene Systemeigenschaften abzufragen.
- Halte deinen VBA-Code gut dokumentiert, insbesondere wenn du mehrere Drucker verwalten möchtest.
- Überlege, die Druckerinformationen in einer Excel-Tabelle zu speichern, um sie einfacher verwalten zu können.
FAQ: Häufige Fragen
1. Wie kann ich den Standarddrucker in Outlook dauerhaft ändern?
Du musst den Standarddrucker in den Windows-Druckereinstellungen ändern. Outlook verwendet die Windows-Druckereinstellungen.
2. Funktioniert dieser Code in allen Outlook-Versionen?
Der Code wurde in Outlook 2007 und Excel 2000 getestet und sollte in ähnlichen Versionen funktionieren. Bei neueren Versionen kann es jedoch zu Abweichungen kommen.