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.
With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company.
Learn more about Allen...
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 Color Separations with VBA.
Word does not have the inherent capability to print color separations. Instead, you typically must use a full-featured desktop publishing program such as InDesign to accomplish this task. That being said, you can perform a rudimentary form of color separation by simply changing the text color you don't want to print to white, and then printing the document. Reversing the process will then print the other color.
For instance, the following VBA macro will allow you to print color-separated text for a document that contains both red and black text:
Sub PrintSeps() ActiveDocument.Save Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting 'Change Red to White Selection.Find.Font.ColorIndex = wdRed Selection.Find.Replacement.Font.ColorIndex = wdWhite With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll ActiveDocument.PrintOut 'Change White back to Red Selection.Find.Font.ColorIndex = wdWhite Selection.Find.Replacement.Font.ColorIndex = wdRed Selection.Find.Execute Replace:=wdReplaceAll 'Change Auto to White Selection.Find.Font.ColorIndex = wdAuto Selection.Find.Replacement.Font.ColorIndex = wdWhite Selection.Find.Execute Replace:=wdReplaceAll 'Change Black to White Selection.Find.Font.ColorIndex = wdBlack Selection.Find.Replacement.Font.ColorIndex = wdWhite Selection.Find.Execute Replace:=wdReplaceAll 'Change Red to Black 'This is done so that Red will print as Black 'On some printers, non-black colors always 'print as a shade of gray. You want them only 'as black Selection.Find.Font.ColorIndex = wdRed Selection.Find.Replacement.Font.ColorIndex = wdBlack Selection.Find.Execute Replace:=wdReplaceAll ActiveDocument.PrintOut ActiveWindow.Close SaveChanges:=wdDoNotSaveChanges End Sub
Note a couple of things about the PrintSeps macro. First, it saves your document. This is done because when the macro is done running, it throws out the document. Saving allows you to load the document from disk at a later time. The other thing to note is that this works only for documents that contain only red and black text. If you have other colors, those colors will print on both passes. If you have white text, it will print with the red pass. If you have graphics, no separation is done on them. (If you have graphics and want them separated, you definitely should be using a desktop publishing program.)
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1795) 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 Color Separations with VBA.
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!