View Single Post
  #6   Report Post  
Posted to microsoft.public.word.newusers
Graham Mayor
 
Posts: n/a
Default Random letter colors?

Another possibility is the inverse of Jay's code

Sub RandomColors()
Dim oCh As Range
Dim myColor As Word.WdColorIndex
Randomize
For Each oCh In Selection.Characters
Do
myColor = 14 * Rnd() + 1
Loop Until (myColor = wdBlue) Or (myColor = wdRed) Or (myColor =
wdGreen)
oCh.Font.ColorIndex = myColor
Next oCh
End Sub


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org


Klaus Linke wrote:
Hi LurfysMa,

Can I ask you to tweak it so that it
(a) Only works on the currently selected text, and


Easy: change ActiveDocument to Selection.

(b) Only uses a predefined list of colors (red, green, blue, for
example)?


One possibility is a Select Case, but for the heck of it, I used
Switch:
Sub RandomColors()
Dim oCh As Range
Dim myColor As Word.WdColorIndex

Randomize
For Each oCh In Selection.Characters

myColor = Int(3 * Rnd())

oCh.Font.ColorIndex = _
Switch(myColor = 0, wdBlue, _
myColor = 1, wdRed, _
myColor = 2, wdGreen)

Next oCh
End Sub

Regards,
Klaus


"LurfysMa" schrieb im Newsbeitrag
...
On Fri, 23 Dec 2005 21:55:57 -0500, Jay Freedman
wrote:

On Fri, 23 Dec 2005 16:34:09 -0800, LurfysMa
wrote:

Is there any way to get Word to change each letter in a selection
of text to a random color? I am writing some Santa letters to some
kids in a playful font and I would like to print them in color.

I guess I could write a little macro.

You could write a little macro, but you might find a little wrinkle
that needs to be worked out. Yellow and white characters don't print
very well. g Try this:

Sub RandomColors()
Dim oCh As Range
Dim myColor As Word.WdColorIndex

Randomize
For Each oCh In ActiveDocument.Characters
Do ' get a random color that isn't white or yellow
myColor = 14 * Rnd() + 1
Loop Until (myColor wdWhite) And (myColor wdYellow)

oCh.Font.ColorIndex = myColor
Next oCh
End Sub


Wow. That is slick. I had a much more complicated macro going.

Can I ask you to tweak it so that it

(a) Only works on the currently selected text, and
(b) Only uses a predefined list of colors (red, green, blue, for
example)?

Thanks

--
Running Word 2000 SP-3 on Windows 2000