Once I can get past this, I am sure I can get the rest of the Macros to work which have different function based upon the choice.
For all our printers, Tray 1 is the envelope feeder, Tray 2 is letterhead, Tray 3 is Bond and Tray 4 is plain and tray 5 is manual feed.
I have a macro that I used in 2010 that I cannot get the vba to work in 2016 word. It bypasses and goes to the "else" at the end. I think it is not understanding how to read the current active printer. All the macros I am seeing for printing go to change the active printer. I think it may be related to the WordBasic command at the top.
This works fine in 2010:
No matter what I do, it is printing to the tray 4 which is plain paper for the printers which are listed by a code (xerox) and Tray 3 only (bond) for the other type of printer.
Code:
Sub whichprinter()
Dim defprinter As String
defprinter = Mid(ActivePrinter, 1, 20)
WordBasic.Insert defprinter
End Sub
Sub PrintLetterhead()
Dim defprinter As String
defprinter = Mid(ActivePrinter, 1, 20)
Select Case defprinter
Case "\\GS-DC2\MFP1"
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 259
End With
GoTo PrintDoc
Case "\\GS-DC2\MFP2"
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 259
End With
GoTo PrintDoc
Case "\\GS-DC2\MFP3"
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 259
End With
GoTo PrintDoc
Case "\\GS-DC2\MFP4"
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 259
End With
GoTo PrintDoc
Case "\\GS-DC2\MFP5"
With ActiveDocument.PageSetup
.FirstPageTray = wdPrinterMiddleBin
.OtherPagesTray = wdPrinterLowerBin
End With
Case "\\GS-DC2\MFP6"
With ActiveDocument.PageSetup
.FirstPageTray = wdPrinterMiddleBin
.OtherPagesTray = wdPrinterLowerBin
End With
GoTo PrintDoc
Case "Bookkeeping Xerox WorkCentre Pro 5335"
With ActiveDocument.PageSetup
.FirstPageTray = 260
.OtherPagesTray = 259
End With
GoTo PrintDoc
Case Else
With ActiveDocument.PageSetup
.FirstPageTray = 258
.OtherPagesTray = 259
End With
GoTo PrintDoc
End Select
PrintDoc:
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