Windows Standarddrucker

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Windows Standarddrucker
von: max
Geschrieben am: 13.11.2003 19:59:57

hallo zusammen
wie kann ich per vba den windows standarddrucker rausfinden?
Application.ActivePrinter liefert mir nur den drucker mit dem zuletzt in
exel ausgedruckt wurde.

Bild


Betrifft: Solte damit gehen....
von: Ramses
Geschrieben am: 13.11.2003 21:02:17

Hallo

Probier mal


Option Explicit

Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
    (ByVal lpAppName As StringByVal lpKeyName As StringByVal lpDefault As String, _
    ByVal lpReturnedString As StringByVal nSize As LongAs Long
Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _
    (ByVal lpAppName As StringByVal lpReturnedString As StringByVal nSize As LongAs 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)
Else
    GetDefaultPrinter = "No Default Printer"
    'oder zum besseren Testen
    'Achtung: "False" = KEIN Boolean Wert
    'NUR ein String
    '----------
    'GetDefaultPrinter = "False"
End If
End Function 
     Code eingefügt mit Syntaxhighlighter 1.16




Gruss Rainer


Bild


Betrifft: Danke!!
von: Franz W.
Geschrieben am: 13.11.2003 22:47:00

Hallo Rainer,

vielen Dank für diese Lösung, freut mich sehr, danach hab ich nämlich auch schon gesucht und vor einiger Zeit mal hier nachgefragt, es gab aber keine Lösung. Und weil ich hierfür noch keine Umleitung (!) gefunden habe, freut mich das hier sehr :-)))

Vielen Dank und Grüße
Franz


Bild


Betrifft: Merci für's Feedback o.T.
von: Ramses
Geschrieben am: 13.11.2003 22:53:47

....


Bild


Betrifft: Bitte um Nachhilfe
von: Franz W.
Geschrieben am: 17.11.2003 10:53:28

Hallo Rainer,

wollte Deine Lösung jetzt einsetzen, bin aber nicht in der Lage das zu integrieren. Habe versucht die Aufzeichnung des Makrorekorders entsprechend abzuändern, das klappt aber nicht, und ich weiß leider gar nicht in welche Richtung in denken soll. (Poste der Einfachheit halber alles noch mal komplett hier rein, es geht um das letzte Makro:

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
Declare 

Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _
    (ByVal lpAppName 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)
Else
    GetDefaultPrinter = "No Default Printer"
    'oder zum besseren Testen
    'Achtung: "False" = KEIN Boolean Wert
    'NUR ein String
    '----------
    'GetDefaultPrinter = "False"
End If
End Function



Sub Standarddrucker()
    MsgBox "Der Windows-Standarddrucker ist: " & GetDefaultPrinter, 48
End Sub



Sub Drucken_mit_Standarddrucker()
'    Application.ActivePrinter = "HP LaserJet 4L auf LPT1:"
    Application.ActivePrinter = GetDefaultPrinter & "auf LPT1:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        GetDefaultPrinter & "auf LPT1:", Collate:=True
End Sub


Bei der Zeile : Application.ActivePrinter = GetDefaultPrinter & "auf LPT1:" bricht er ab mit der Meldung:
" Die Methode 'ActivePrinter' für das Objekt '_Application' ist fehlgeschlagen."

Vielleicht kannst Du mir noch mal helfen, falls Du "soweit unten" noch mal reinschaust :-))

Grüße
Franz


Bild


Betrifft: funktioniert super danke!. o.t.
von: max
Geschrieben am: 14.11.2003 08:07:12




Bild

Beiträge aus den Excel-Beispielen zum Thema " Windows Standarddrucker "