Projektanfrage

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unter-stützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! oder rufen Sie uns einfach an.

   
      Referenzen 

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   
     Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
   

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der Lösungs-
 findung?

  Nutzen Sie unser Auftragsformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
r
o
j
e
k
t
a
n
f
r
a
g
e
   

Alle vorhandenen Drucker auslesen

106009


Das nachfolgende Makro schreibt alle vorhandenen, installierten Drucker auf das erste Sheet in einer Arbeitsmappe. Sie müssen einfach nur den folgenden Code in ein Modul einfügen. Der Aufruf erfolgt über das Makro 'DruckerAuslesen'.

Sie können mit den ausgelesenen Druckern natürlich noch andere Sachen anstellen, als diese nur auf ein Tabellenblatt zu schreiben. Sinnvoll ist es, z. B. bei Blättern, deren Seitengröße auf A3 ausgelegt ist, den entsprechenden automatisch Drucker auszuwählen und auf diesem auszudrucken.

Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Declare Function RegOpenKeyEx _
 Lib "advapi32.dll" _
 Alias "RegOpenKeyExA" _
 ( _
 ByVal hKey As Long, _
 ByVal lpSubKey As String, _
 ByVal ulOptions As Long, _
 ByVal samDesired As Long, _
 phkResult As Long _
 ) _
 As Long

Declare Function RegEnumKeyEx _
 Lib "advapi32.dll" _
 Alias "RegEnumKeyExA" _
 ( _
 ByVal hKey As Long, _
 ByVal dwIndex As Long, _
 ByVal lpName As String, _
 lpcbName As Long, ByVal _
 lpReserved As Long, _
 ByVal lpClass As String, _
 lpcbClass As Long, _
 lpftLastWriteTime As FILETIME _
 ) _
 As Long

Declare Function RegCloseKey _
 Lib "advapi32.dll" _
 ( _
 ByVal hKey As Long _
 ) _
 As Long

_____________________________________________________________

Sub DruckerAuslesen()
 Dim aPrinter As Variant
 Dim iRow As Integer
 For Each aPrinter In fncEnumInstalledPrintersReg
 iRow = iRow + 1
 Cells(iRow, 1) = aPrinter
 Next aPrinter
End Sub
 

________________________________________________________

Public Function fncEnumInstalledPrintersReg() As Collection
 Dim tmpFunctionResult As Boolean
 Dim aFileTimeStruc As FILETIME
 Dim AddressofOpenKey As Long, aPrinterName As String
 Dim aPrinterIndex As Integer, aPrinterNameLen As Long
 Const KEY_ENUMERATE_SUB_KEYS = &H8
 Const HKEY_LOCAL_MACHINE = &H80000002
 Set fncEnumInstalledPrintersReg = New Collection
 aPrinterIndex = 0
 tmpFunctionResult = Not CBool _
 ( _
 RegOpenKeyEx _
 ( _
 hKey:=HKEY_LOCAL_MACHINE, _
 lpSubKey:="SYSTEM\CURRENTCONTROLSET\CONTROL\PRINT\PRINTERS", _
 ulOptions:=0, _
 samDesired:=KEY_ENUMERATE_SUB_KEYS, _
 phkResult:=AddressofOpenKey _
 ) _
 )
 If tmpFunctionResult = False Then Goto ExitFunction
 Do
 aPrinterNameLen = 255
 aPrinterName = String(aPrinterNameLen, CStr(0))
 tmpFunctionResult = Not CBool _
 ( _
 RegEnumKeyEx _
 ( _
 hKey:=AddressofOpenKey, _
 dwIndex:=aPrinterIndex, _
 lpName:=aPrinterName, _
 lpcbName:=aPrinterNameLen, _
 lpReserved:=0, _
 lpClass:=vbNullString, _
 lpcbClass:=0, _
 lpftLastWriteTime:=aFileTimeStruc _
 ) _
 )
 aPrinterIndex = aPrinterIndex + 1
 If tmpFunctionResult = False Then Exit Do
 aPrinterName = Left(aPrinterName, aPrinterNameLen)
 On Error Resume Next
 fncEnumInstalledPrintersReg.Add aPrinterName
 On Error Goto 0
 Loop
 Call RegCloseKey(AddressofOpenKey)
 '
 Exit Function
ExitFunction:
 If Not AddressofOpenKey = 0 Then _
 Call RegCloseKey(AddressofOpenKey)
 Set fncEnumInstalledPrintersReg = Nothing
End Function

   

Relevante Artikel

  • PDF Datei per VBA erzeugen

    Seit Excel 2007 können PDF-Dateien direkt aus Excel heraus erzeugt werden. Dazu muss die Datei einfach über die Funktion Speichern unter als PDF-Dokument abgespeichert werden. Diese manuelle Arbeit...

  • Druckdialog per VBA aufrufen

    Mit dem folgenden VBA-Code wird der Standarddruckdialog in Excel aufgerufen. Dort kann dann wie gewohnt der Drucker gewählt, Einstellungen vorgenommen und abschließend gedruckt werden. Sub...

  • Druckbereich per VBA festlegen

    Wenn nicht das komplette Tabellenblatt gedruckt werden soll, kann ein sogenannter Druckbereich definiert werden. Damit kann festgelegt werden, welcher Bereich des Tabellenblatts gedruckt wird und...

  • Drucken der Arbeitsmappe verhindern

    Mit Hilfe des folgenden VBA-Codes kann die Druckfunktion für eine gesamte Arbeitsmappe deaktiviert werden. Damit kann kein Tabellenblatt ausgedruckt werden. Der Druckversuch wird mit einer...

  • Alle vorhandenen Drucker auslesen

    106009 Das nachfolgende Makro schreibt alle vorhandenen, installierten Drucker auf das erste Sheet in einer Arbeitsmappe. Sie müssen einfach nur den folgenden Code in ein Modul einfügen. Der Aufruf...