
Tips.Net > WordTips Home > Printing > Printing Color Separations with VBA
Summary: When printing in color (at a commercial printer) it is necessary to print different colors of your document in different passes. For this purpose, commercial printers often deal with color separations, or separating a document into its component colors. Word can’t perform such a complex task, but there is a way you can simulate color separations in simple documents. (This tip works with Microsoft Word 97, Word 2000, Word 2002, Word 2003, and Word 2007.)
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.)
Tip #1795 applies to Microsoft Word versions: 97 2000 2002 2003 2007
More Power! For some people, the prospect of creating Word macros can be scary. WordTips: The Macros can help you conquer your fears and you'll discover you're much more confident and productive as you make Word do exactly what you want. This is an invaluable source for learning macros. You are introduced to the topic in bite-sized chunks, pulled from past issues of WordTips. Learn at your own pace, exactly the way you want.
Check out WordTips: The Macros today!
Do you want a decade of WordTips information at your fingertips? You can find what you need with the WordTips Ten-Year Library. (more information...)
Ask a Word Question
Make a Comment
Beauty Tips
Bugs and Pests Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Money Tips
Organizing Tips
Pet Tips
Word2007 Tips
WordTips