![]() |
|
|
| Subject:
MS Word: How to get a macro to change text in custom color?
Category: Computers > Software Asked by: rambler-ga List Price: $8.00 |
Posted:
23 Aug 2006 09:59 PDT
Expires: 22 Sep 2006 09:59 PDT Question ID: 758761 |
Everyday, I modify a Word document that contains a lot of text in
fonts and colors that I don't like. It's a nuisance making the same
changes day after day, but when I try to record the changes in a
macro, it doesn't work: the macro simply fails to record actions
dealing with text colors.
I do know, however, how to modify the macro and force it to work. For
example, the following code, will change all pre-selected text that is
non-italic and automatic color into bold green:
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Font.Color = wdColorAutomatic
.Font.Italic = False
.Wrap = wdFindStop
End With
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement
.Text = ""
.Font.Color = wdColorGreen
.Font.Bold = wdToggle
End With
Selection.Find.Execute Replace:=wdReplaceAll
So, what's my problem? Well, the text is in a "custom color", and I
don't know how to specify custom colors in a macro.
When I do these changes 'manually', the Find And Replace dialogue box
says this (just before I hit the "Replace All" button):
Find what: Format: Font: Bold, Font color: Custom Color(RGB(101,101,101))
Replace with: Format: Font: Not Bold, Not Italic, Font color: Auto
It's that "RGB" stuff that I don't know how to specify in a macro. Can you help? |
|
| Subject:
Re: MS Word: How to get a macro to change text in custom color?
Answered By: maniac-ga on 23 Aug 2006 16:15 PDT Rated: ![]() |
Hello Rambler,
The specific method for an RGB color value in Visual Basic is to use
the "RGB" function. As described in part of the Visual Basic online
help (search phrase RGB, select RGB function)
RGB(red, green, blue)
The RGB function syntax has these named arguments:
Part Description
red Required; Variant (Integer). Number in the range 0-255,
inclusive, that represents the red component of the color.
green Required; Variant (Integer). Number in the range 0-255,
inclusive, that represents the green component of the color.
blue Required; Variant (Integer). Number in the range 0-255,
inclusive, that represents the blue component of the color.
For your example, the rewrite would be something like
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Font.Color = RGB(101, 101, 101)
.Font.Italic = False
.Wrap = wdFindStop
End With
I am somewhat surprised that your version of MS Word did not properly
record the replacement. Which version are you using?
On my system I did something similar and had recorded
Sub A()
'
' A Macro
' Macro recorded 8/23/06 by Maniac
'
Selection.Find.ClearFormatting
Selection.Find.Font.Color = 6645093
Selection.Find.Replacement.ClearFormatting
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.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
.Bold = False
.Italic = False
.Underline = wdUnderlineNone
.Color = wdColorAutomatic
End With
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
End Sub
The value of RGB(101, 101, 101) can be confirmed by the following
immediate window command
print rgb(101,101,101)
6645093
which matches the value used above.
Please make a clarification request if any part of the answer is
unclear or if you need further information about this topic. I would
be glad to help further.
Good luck with your work.
--Maniac |
rambler-ga
rated this answer:
and gave an additional tip of:
$2.00
Exactly what I needed. Thank you! |
|
| Subject:
Re: MS Word: How to get a macro to change text in custom color?
From: jefffromgreen-ga on 23 Aug 2006 14:01 PDT |
In this line
.Font.Color = wdColorGreen
Have you tried using
.Font.Color = &H0000FF00& (Green)
.Font.Color = &H000000FF& (Red)
.Font.Color = &H00FF0000& (Blue)
or
.Font.Color = &H000CC0FF& (kind of a mustard)
You can "Mix" the colors by changing the Blue, Red, and Green values
from 00 to FF hex.
JeffFromGreen |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
| Search Google Answers for |
| Google Home - Answers FAQ - Terms of Service - Privacy Policy |