Liebe VBA Freunde
Ich muss auslesen, mit welchem Drucker ein Excel-Sheet gerade zum Druck in Auftrag gegeben wird. Via Google-Suche fand ich zwar Scripts, um "alle Drucker" auszulesen oder den "Standarddrucker", nicht aber denjenigen, den ich soeben normal im Excel ausgewählt habe zum Drucken.
Hintergrund: Für ein Unternehmen habe ich ein Report aufgebaut mit vertraulichen Informationen, direkt aus dem ERP, die man nur nach aktivierten Makros erhält, nach Login auf SQL-Server, ...speichern im Excel ist unterdrückt etc.... Da wir aus Sicherheitsgründen den Abfluss kontrollieren müssen, müssen wir schauen ob die Leute das ausdrucken, und wenn ja ob sie es wirklich physisch ausdrucken oder nur ein PDF erstellen. Der Drucker wird dann in ein Protokoll auf dem SQL gespeichert, auswerten werden wir Ende Jahr. Daher brauche ich die Druckerbezeichnung.
Bin dankbar für eure Hilfe,
Grüsse Michael
Hier meine Versuche:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim wshnetwork
Dim Druckers
Dim I
Set wshnetwork = CreateObject("WScript.Network")
Set Druckers = wshnetwork.EnumPrinterConnections
For I = 0 To Druckers.Count - 1 Step 2
Debug.Print Druckers.Item(I + 1) ' Liest zwar alle Drucker aus
Next
Debug.Print Application.ActivePrinter ' Zeigt zwar den Standard-Drucker
End Sub
|