ActiveDocument.PageSetup.FirstPageTray = [Tray]
ActiveDocument.PageSetup.OtherPagesTray = [Tray]
[Tray] Kan sein:
wdPrinterAutomaticSheetFeed
wdPrinterDefaultBin
wdPrinterEnvelopeFeed
wdPrinterFormSource
wdPrinterLargeCapacityBin
wdPrinterLargeFormatBin
wdPrinterLowerBin
wdPrinterManualEnvelopeFeed
wdPrinterManualFeed
wdPrinterMiddleBin
wdPrinterOnlyBin
wdPrinterPaperCassette
wdPrinterSmallFormatBin
wdPrinterTractorFeed
wdPrinterUpperBin
Gibt es solche Befehle in Excel ?
Ralf Diller
Robert Genzinger
LS EDV-Coaching
Robert.G...@LS-online.de
www.LS-online.de
Ralf Diller wrote in message ...
Robert Genzinger schrieb:
> Hallo Robert, hallo Ralf,
> die Druckereinstellung bei EXCEL wird vom Makro nicht aufgezeichnet. Die
> Möglichkeiten von EXCEL sind leider beschränkter als in WORD. Die
> genannten Befehle gibt es in EXCEL nicht. Es geht nur das über VBA, was
> mit "Seiteneinrichtung" passiert.
> Einzige Möglichkeit ist, mit SendKeys die Einstellung per Hand
> nachzubilden, die ist abhängig von der Dialogführung des
> Druckertreibers.
> MfG
> Franz-Josef
>
> Robert Genzinger schrieb:
> >
> > Zeichne doch einfach ein Makro auf, bei dem Du die Einstellungen änderst
> > Dann siehst Du welche Befehle Du brauchst und mußt sie nicht mal selbst
> > eintippen.
> >
> > Robert Genzinger
> > LS EDV-Coaching
> > Robert.G...@LS-online.de
> > www.LS-online.de
Hallo Robert und Ralf,
wie wäre es (der theroie nach möglich), wenn Ralf einfach in Excel ein Makro
schreibt, daß die Druckereinstellung _über_ Word ändert??
Marco Amistadi
das geht leider nicht, da dieses nur die Druckereinstellungen für ein
Dokument, aber nicht die aktuellen globalen Druckereinstellung ändert.
Ralf
Pixeltester <Pi...@Pixeltester.de> schrieb in im Newsbeitrag:
378F9966...@Pixeltester.de...
'Deklarationsabschnitt
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias _
"RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As _
String, ByVal Reserved As Long, ByVal dwType As Long, _
lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName _
As String, ByVal lpReserved As Long, lpType As Long, _
lpData As Any, lpcbData As Long) As Long
Private 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
Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const Schlüsselname = _
"SYSTEM\CurrentControlSet\Control\Print\Printers\HP DeskJet 400"
Private Const Einstellungsname = "Default DevMode"
Private Sub Einstellungen_in_Tabelle()
Dim dummy, Schlüsselhandle&, Typ&
Dim Schlüsselinhalt() As Byte
Dim Länge&, Eintrag$
ReDim Schlüsselinhalt(1 To 600)
dummy = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _
Schlüsselname, 0&, 1&, Schlüsselhandle)
dummy = RegQueryValueEx(Schlüsselhandle, _
Einstellungsname, 0&, Typ, Schlüsselinhalt(1), Länge)
ReDim Schlüsselinhalt(1 To Länge)
dummy = RegQueryValueEx(Schlüsselhandle, _
Einstellungsname, 0&, 3&, Schlüsselinhalt(1), Länge)
dummy = RegCloseKey(Schlüsselhandle)
With Sheets("Druck")
For dummy = 1 To Länge
.Cells(dummy, 1).Value = Schlüsselinhalt(dummy)
Next
End With
End Sub
Mit folgender Prozedur kannst du dann einzelne Bytes ändern und zurückschreiben.
Sub DruckerauflösungÄndern()
Dim dummy, Schlüsselhandle&, Typ&
Dim Schlüsselinhalt() As Byte
Dim Länge&, Eintrag$
ReDim Schlüsselinhalt(1 To 600)
dummy = RegOpenKeyEx(HKEY_LOCAL_MACHINE, _
Schlüsselname, 0&, 1&, Schlüsselhandle)
dummy = RegQueryValueEx(Schlüsselhandle, _
Einstellungsname, 0&, Typ, Schlüsselinhalt(1), Länge)
ReDim Schlüsselinhalt(1 To Länge)
dummy = RegQueryValueEx(Schlüsselhandle, _
Einstellungsname, 0&, 3&, Schlüsselinhalt(1), Länge)
'Auf Modus Schnelldruck
'Schlüsselinhalt(341) = 2
'Auf Modus Normaldruck
'Schlüsselinhalt(341) = 1
'Auf Modus Hohe Qualität
Schlüsselinhalt(341) = 0
dummy = RegSetValueEx(Schlüsselhandle, _
Einstellungsname, 0&, 3&, Schlüsselinhalt(1), Länge)
dummy = RegCloseKey(Schlüsselhandle)
End Sub
Bei mir haben zum Bleistift folgende Bytes folgende Funktionen.
379=Farbe-Grauton
341=Druckqualität
391=Papiereinzug
387=Hoch-Querformat
383=Papiergröße
Ich habe aber andere Drucker noch nicht ausprobiert.
MfG
Michael
Wenn Du wirklich nur den Papierschacht verändern möchtest, hätte ich eine
einfache Lösung für das Problem: 1) Du installierst Deinen Drucker ein
zweites mal und stellst einmal den
Druckerschacht auf z.B. A4 und das andere mal auf A5.
2) Du läßt die erste Seite mit dem Druckerprofil A4 ausdrucken und die
restlichen 2 mit dem Druckerprofil A5.
Dies ist vermutlich die schnellere Lösung, da die Umsetzung der
Druckereigenschaften mit VBA sehr langsam geht (frag mich bitte nicht warum;
ist halt so).
MFG
Stefan