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: Remembering Copies to Print.
by Allen Wyatt
(last updated July 18, 2015)
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 the Quick Access Toolbar or to 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 (10603) applies to Microsoft Word 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Word here: Remembering Copies to Print.
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!
If you need to print more than one copy of your document, you need to become familiar with the printing options made ...Discover More
You can change the order in which pages are printed (normal or reversed) using the Print dialog box or the print settings ...Discover More
Many printers these days have the capability to print on both sides of a piece of paper. You may want Word to use this ...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.