Drucker und Papierschacht per VBA-Skript auswählen

Problem
In meinem großen Drucker liegen im Papierschacht 1 die weißen Blätter, im Papierschacht 2 die Briefbögen und im Bypass die Einlegestreifen. Nun möchte ich für den Papierschacht 2 und den Bypass jeweils eine Schaltfläche in der Menüleiste anlegen, über die ich das geöffnete Dokument direkt dort drucken kann.

Es soll also per VBA sowohl der richtige Drucker als auch das richtige Modell ausgewählt werden.

Lösung
Da die Bezeichnung der Druckerschächte von Drucker zu Drucker unterschiedlich sein kann, ist es empfehlenswert, jede Variante zunächst per Makro zu erstellen. Die nachfolgende Lösung beschreibt die Vorgehensweise in Word 2010.

Um das Dokument über den Bypass auszudrucken, gehen Sie wie folgt vor:

1. Makro erstellen

  • Klicken Sie auf „Datei > Optionen > Menüband anpassen“, aktivieren Sie auf der rechten Seite die Registerkarte „Entwicklertools“ und bestätigen Sie mit „OK“. Sie finden nun die Registerkarte in Ihrer Gruppenleiste am oberen Seitenrand.
  • Klicken Sie auf die Registerkarte „Entwicklertools“ und in der Gruppe „Code“ auf die Schaltfläche „Makro aufzeichnen“.
  • Weisen Sie dem Makro einen Namen zu und bestätigen Sie mit „OK“.
  • Klicken Sie auf die Registerkarte „Seitenlayout“ und in der Gruppe „Seite einrichten“ auf das Symbol ganz rechts unten. Dadurch öffnet sich das Dialogfeld „Seite einrichten“.
  • Klicken Sie dort auf die Registerkarte „Papier“ und wählen Sie im Feld „Erste Seite“ den Bypass aus. Wiederholen Sie den Vorgang für das Feld „Restliche Seiten“.
  • Bestätigen Sie die Eingaben mit Klick auf „OK“.
  • Klicken Sie auf die Registerkarte „Datei > Drucken“ und wählen Sie den Drucker aus.
  • Klicken Sie dann auf „OK“ und drucken Sie das Dokument aus.
  • Klicken Sie auf die Registerkarte „Entwicklertools“ und in der Gruppe „Code“ auf die Schaltfläche „Aufzeichnung beenden“.
  • Klicken Sie auf die Registerkarte „Entwicklertools“ und in der Gruppe „Code“ auf die Schaltfläche „Visual Basic“.
  • Öffnen Sie dort den Ordner „Module“ und darin dann Ihr Makro. Dieses Makro könnten Sie (wenn Sie möchten - es muss aber nicht sein!) auf die notwenidgen Funktionen reduzieren.
Sub LabelDruckenUeberBypass()
 
' Die Datei dient dazu, einen Einlegestreifen über den Bypass eines Druckers per Schaltfläche auszudrucken,
' ohne dass jedes Mal das Ausgabefach neu eingestellt werden muss.
' Eine Anleitung zu diesem Makro finden Sie am Ende dieses VBA-Codes.
    
    With ActiveDocument.Styles(wdStyleNormal).Font
        If .NameFarEast = .NameAscii Then
            .NameAscii = ""
        End If
        .NameFarEast = ""
    End With
    With ActiveDocument.PageSetup
        .LineNumbering.Active = False
        .Orientation = wdOrientPortrait
        .TopMargin = CentimetersToPoints(2)
        .BottomMargin = CentimetersToPoints(0.7)
        .LeftMargin = CentimetersToPoints(1)
        .RightMargin = CentimetersToPoints(1)
        .Gutter = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.25)
        .FooterDistance = CentimetersToPoints(1.25)
        .PageWidth = CentimetersToPoints(10.48)
        .PageHeight = CentimetersToPoints(24.13)
        .FirstPageTray = wdPrinterManualFeed
        .OtherPagesTray = wdPrinterManualFeed
        .SectionStart = wdSectionNewPage
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .VerticalAlignment = wdAlignVerticalBottom
        .SuppressEndnotes = False
        .MirrorMargins = False
        .TwoPagesOnOne = False
        .BookFoldPrinting = False
        .BookFoldRevPrinting = False
        .BookFoldPrintingSheets = 1
        .GutterPos = wdGutterPosLeft
    End With
 
    ' Nachfolgend den Druckernamen eingeben
    ActivePrinter = "Kyocera Ecosys P2235dw"
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
 
 
' Anleitung zu dem oben stehenden VBA-Code:
'
' Die Datei dient dazu, einen Einlegestreifen über den Bypass eines Druckers per Schaltfläche auszudrucken,
' ohne dass jedes Mal das Ausgabefach neu eingestellt werden muss.
'
' Geben Sie in der Zeile ActivePrinter = "KMP2235dwAHEIL" zwiscchen den Anführungszeichen den Druckernamen an,
' den Sie dem Drucker in Ihrem System gegeben haben.
'
' Andere wesentliche Funktionen sind:
'
' FirstPageTray stellt den Druckschacht der ersten Seite ein.
'        .FirstPageTray = wdPrinterManualFeed
'
' OtherPagesTray stellt den Druckschacht ab der zweiten Seite ein.
'        .OtherPagesTray = wdPrinterManualFeed
'
' ActivePrinter stellt den gewünschten Drucker ein.
'    ActivePrinter = "Kyocera Ecosys P2235dw"
'
' Speichern Sie diese Vorlage als "Vorlage-Einlegestreifen.docm" ab. Nur wenn diese als ".docm"-Datei gespeichert wurde, wird das Makro ausgeführt.

'Makro der Schaltfläche zuweisen
'   - Klicken Sie in der Symbolleiste am oberen Seitenrand auf den „Pfeil nach unten“ auf der rechten Seite und wählen Sie den Befehl „Weitere Befehle“ aus.
'   - Im DropDownMenü „Befehle auswählen“ wählen Sie „Makros“ aus.
'   - Markieren Sie das Makro indem Sie es mit der linken Maustaste anklicken.
'   - Klicken Sie dann auf die Schaltfläche „Hinzufügen“ und bestätigen Sie mit Klick auf „OK“.
'   - Ihr Makro steht nun in der Symbolleiste am oberen Seitenrand bereit. Wenn Sie das Symbol anklicken, werden die hinterlegten Einstellungen (richtiger Drucker, richtiger Papierschacht) verwendet.

2. Makro der Schaltfläche zuweisen

  • Klicken Sie in der Symbolleiste am oberen Seitenrand auf den „Pfeil nach unten“ auf der rechten Seite und wählen Sie den Befehl „Weitere Befehle“ aus.
  • Im DropDownMenü „Befehle auswählen“ wählen Sie „Makros“ aus.
  • Markieren Sie das Makro indem Sie es mit der linken Maustaste anklicken.
  • Klicken Sie dann auf die Schaltfläche „Hinzufügen“ und bestätigen Sie mit Klick auf „OK“.

Ihr Makro steht nun in der Symbolleiste am oberen Seitenrand bereit. Wenn Sie das Symbol anklicken, werden die hinterlegten Einstellungen (richtiger Drucker, richtiger Papierschacht) verwendet.

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • kb/s/0099/faq/drucker-papierschacht-auswaehlen-per-vba.txt
  • Zuletzt geändert: 2021/11/29 16:39
  • von 127.0.0.1