Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Remembering Copies to Print.
by Allen Wyatt
(last updated June 26, 2018)
When you click on the Print tool, Word automatically prints a single copy of your document. It does this regardless of the number of copies you previously chose to print in the Print dialog box. This isn't some funny behavior unique to the Print tool. Indeed, each time you redisplay the Print dialog box you should notice that the Number of Copies setting is always reset to 1.
Word always seems to suffer from short-term memory loss in this area; the Number of Copies setting is simply not "persistent," and must be set each time you want to print. This can be bothersome, particularly if you want to print the same number of copies on a consistent basis.
There are two ways that a solution can be approached. First, you can create a macro that prints, using the currently selected printer, a specific number of copies. This is a great approach if you find yourself consistently printing a certain number of copies. The following macro, for example, will print four copies of the current document:
Sub PrintFour() ActiveDocument.PrintOut Copies:=4 End Sub
If you assign this macro to a new toolbar button or a shortcut key, then a simple click or key combination will print the desired number of copies.
The second solution is more involved, but may be more flexible in the long run. This solution involves the use of a custom document property to maintain, on a document-by-document basis, the number of copies last printed. This setting is used as the number of copies to print, thereby providing a persistent number of copies for each document. The following two macros should be used:
Public Sub FilePrint() Dim bExists As Boolean Dim MyPrint As Dialog ' ensure our doc variable exists bExists = False For Each varItem In ActiveDocument.CustomDocumentProperties If varItem.Name = "Copies" Then bExists = True Exit For End If Next varItem ' initialize document variable if doesn't exist If Not bExists Then ActiveDocument.CustomDocumentProperties.Add _ Name:="Copies", LinkToContent:=False, _ Type:=msoPropertyTypeNumber, Value:=1 End If Set MyPrint = Dialogs(wdDialogFilePrint) With MyPrint .NumCopies = ActiveDocument.CustomDocumentProperties("Copies") .Show End With ActiveDocument.CustomDocumentProperties("Copies") = _ MyPrint.NumCopies Set MyPrint = Nothing End Sub
Public Sub FilePrintDefault() Dim bExists As Boolean ' ensure our doc variable exists bExists = False For Each varItem In ActiveDocument.CustomDocumentProperties If varItem.Name = "Copies" Then bExists = True Exit For End If Next varItem ' initialize document variable if doesn't exist If Not bExists Then ActiveDocument.CustomDocumentProperties.Add _ Name:="Copies", LinkToContent:=False, _ Type:=msoPropertyTypeNumber, Value:=1 End If ActiveDocument.PrintOut Copies:= _ CInt(ActiveDocument.CustomDocumentProperties("Copies")) End Sub
These macros have special names, FilePrint and FilePrintDefault. These are the names assigned to the internal Word commands that display the Print dialog box (FilePrint) and print the active document (FilePrintDefault) through the use of the Print tool on the toolbar. When you use these macros, with the names shown, you essentially replace the internal Word commands.
In the case of the new FilePrint macro, the document properties are checked to see if there is one named Copies. If there is not, then a document property by that name is created and set to the value of 1. Then, the Print dialog box is displayed and the Number of Copies value is set based on the custom document property. You, as a user, can then change the Number of Copies setting, as desired. When the dialog box is closed (either by printing or not), the Copies document property is updated to whatever the Number of Copies setting was.
The FilePrintDefault macro, on the other hand, only checks to ensure that the Copies document property exists and sets the number of copies to print based on its value. If the property does not exist, then it is created and set to a value of 1.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1313) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Remembering Copies to Print.
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!
Word does not keep printer information associated with documents. You can define a macro for each printer you use and put ...Discover More
You can instruct Word, when printing your document, to print only the odd- or even-numbered pages. This tip explains how ...Discover More
Serious users of Word often display non-printing characters on-screen so they can see them easier. If you want those ...Discover More
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.