Written by Allen Wyatt (last updated October 20, 2018)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
If you use macros to print your worksheets, you already know that the macro can specify the actual printer to which output should be sent. What if you want to also specify a specific paper tray to be used on that printer? Unfortunately, this gets to be a bit of a sticky wicket. The problem is that when you click on the Options button in the Page Setup dialog box in order to set which paper tray to use, what you see is completely under the control of your printer driver, not under the control of Excel.
What does this mean to you? It means there are no commands you can use in an Excel macro to specify a printer tray. There are some workarounds that you can try, however. The first workaround is to simply define different printer definitions in Windows, each one tailored to use a specific printer tray. Follow these general steps:
At this point you have multiple printer definitions set up, and each will print to a different paper tray on the same printer. Within Excel you can specify the desired printer, in a macro, so that the printout goes to the desired printer definition, and hence to the desired paper tray. The only drawback to this solution, of course, is that it takes quite a bit of setup work. If you work in an office with 50 users, this means you will need to make sure all 50 have each printer defined as described above.
Another workaround involves the use of the SendKeys statement in your macro. You can find information on SendKeys in the VBA online help available with Excel, but what it basically does is to stuff the keyboard buffer with a series of keypresses, just as they would be typed by the user. Thus, you could theoretically set up the macro to emulate the keypresses you would follow to open the Page Setup dialog box, click on Options, and select a different printer tray.
There is a potential problem with SendKeys, however, and it is a big one. It can be unreliable because there is no way to ensure that the keystrokes are actually going where you want. On a multi-threaded operating system (like Windows), some other process could intervene and derail the commands. In addition, if SendKeys works on your computer, it may not work on someone else's computer unless they have the same version of Excel, same printer, and same printer driver version.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (7010) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. You can find a version of this tip for the older menu interface of Excel here: Specifying a Paper Tray in a Macro.
Program Successfully in Excel! John Walkenbach's name is synonymous with excellence in deciphering complex technical topics. With this comprehensive guide, "Mr. Spreadsheet" shows how to maximize your Excel experience using professional spreadsheet application development tips from his own personal bookshelf. Check out Excel 2013 Power Programming with VBA today!
When you print a worksheet, you can specify in the Print dialog box how many copies you want printed. If you want the ...
Discover MoreBorders not printing properly? It could be any one of a number of reasons causing the problem. This tip provides some ...
Discover MoreWant to print out the fastest possible copy of your worksheet? You do so by printing a draft, discussed in this tip.
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2023 Sharon Parq Associates, Inc.
Comments