Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, and 2013. If you are using an earlier version (Word 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Word, click here: Defining Default Printers on a Document Level.
by Allen Wyatt
(last updated June 7, 2016)
Some programs remember, on a document-by-document basis, what printer you last used when working with that document. For instance, InDesign and QuarkXPress remember what printer was used to print any given document; if you switch from one document to another, the printer designated to print that document will also change.
Word, unfortunately, does not have such a capability. Instead, Word keeps track of printers on a session-by-session basis. In other words, when you start Word, it starts by assuming you want to print to your default Windows printer. If you later change to a different printer, that printer remains selected until you specifically make changes. When you quit your Word session and restart later, the selected printer again reverts to the default printer.
There are several ways you could work around this shortcoming. One is to define different custom printer buttons (one for each of your printers) and then simply use those to print different documents, as desired. If you want Word to do the remembering of which printer was used, then your only option is to create a macro that would do this for you. This approach, however, is not a trivial one. For this reason, the balance of this tip will discuss only the generalities of writing such a macro instead of presenting the actual macro code.
A simple way to implement such a macro system would be to define a special custom document property, and then use the contents of that property to store the name of the printer last used for the document. The document property could be set using the AutoClose macro, which is called whenever you close a document.
Once the custom document property is set, a macro can read the value and reset the printer whenever you are ready to print. If the document property is not set or if it is set to a printer that is not available, then it could simply use the default Windows printer.
The trick in all this, of course, is to determine when the macro that does the printer switching should be executed. It could be placed in one of the Auto macros (such as AutoOpen), but that would not completely solve the problem. For instance, if you open two documents at the same time, the printer would remain set to the printer specified in the last document you opened.
A more useful solution may be to simply use macros to redefine the print command used within Word. When you chose to print your document, the macro would present the standard Print dialog box, but the selected printer would be changed to whatever printer is stored in the custom document property. The drawback to this approach is the same as the initial strength—that the printer isn't changed until actually printing. Word relies upon the selected printer driver to control its WYSIWYG display. In other words, the printer driver selected controls how information is displayed on the screen. If the printer driver changes just before printing, then what is printed may not match what is displayed on the screen.
The best solution would be to tie the printer-setting macro to an event that fired whenever a document attained focus (when the document was selected). Unfortunately, there is no such event available for document objects in VBA. (Which is very curious since there is such an object in Excel's implementation of VBA.)
The upshot of all this is that a complete solution will necessitate the changing of several different built-in Word commands. Which commands? It really depends on how you use Word. For instance, if you normally look at Print Preview before printing, then you will want to change the Print Preview command so that it changes the printer driver. Do you choose the Print command directly from the Print Preview screen? If so, then you will need to make changes to that command.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (8226) applies to Microsoft Word 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Word here: Defining Default Printers on a Document Level.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!
Do you want to transfer fonts from one computer system to another? It is relatively easy to do, but there is one important ...Discover More
Word provides a wide variety of tools that ostensibly help make you a better writer. One of those tools is the grammar ...Discover More
Want to print just a selection from within your document? It's easy to do when you print using the Print dialog box.Discover More
Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.