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: Printing Personalized Copies of a Document.
Written by Allen Wyatt (last updated October 5, 2021)
This tip applies to Word 97, 2000, 2002, and 2003
Mahmud asked for a way to print personalized copies of a document. He started with a list of names in a regular text file, one per line, and he wanted to print one copy of the current Word document for each of those names. Further, he wanted the person's name placed in the header of the document.
The process to perform such a task is fairly straightforward: open the text file, grab a name, put it in the header, and then print the document. Another name is grabbed, and the process is repeated until there are no more names in the file. The following macro implements such a process:
Sub PutNamesInHeader() Dim sName As String Open "c:/names.txt" For Input As #5 Do While Not EOF(5) ' get the name Line Input #5, sName ActiveWindow.ActivePane.View.SeekView = _ wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete Selection.TypeText Text:=sName ActiveWindow.ActivePane.View.SeekView = _ wdSeekMainDocument ActiveDocument.PrintOut Loop Close #5 ActiveWindow.ActivePane.View.SeekView = _ wdSeekCurrentPageHeader Selection.WholeStory Selection.Delete ActiveWindow.ActivePane.View.SeekView = _ wdSeekMainDocument End Sub
The tricky part of the macro is using the .SeekView property to specify which story in the document you want to work with. As implemented here, the .SeekView property is used repeatedly to switch between the header area and the main document. After the loop (grabbing names and printing) is completed, the header area is cleared and the .SeekView is switched back to the main document.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (152) 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: Printing Personalized Copies of a Document.
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 the mirror image (backwards) of a document, you may think you are out of luck in Word. There are ...
Discover MoreField codes allow dynamic information to be included in documents and can be a great boon. At some point you may want to ...
Discover MoreA VBA macro to allow duplex printing.
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2015-04-25 09:42:34
Craig
Would the mail merge feature (Tools > Letters and Mailings > Mail Merge) also do the same thing?
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.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2024 Sharon Parq Associates, Inc.
Comments