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 Office 365. You can find a version of this tip for the older menu interface of Excel here: Specifying a Paper Tray in a Macro.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
When printing mulitiple copies of the same worksheet, you may have a need to change something simple for each of the ...
Discover MoreNeed a full-page border on your Excel printouts? It's not as easy to get one as you might wish. There are a few ways you ...
Discover MoreWhen you print a worksheet, you may want to specify that the printout be done on a particular paper tray in a particular ...
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 © 2022 Sharon Parq Associates, Inc.
Comments