I have a rather large word document that has several words colored in Red and
Green.
I would like to insert a word a the beginning of every paragraph that
contains a red or a green word.
For example the word "[RED]" at the beginning of every paragraph containing
a word colored in red text and the word "[Green]" in front of every paragraph
that containing a word colored in green text.

I hope the above makes sense, any help is much appreciated

Thanks in advance

Re: Sherching for a color and inserting text. by Klaus

Klaus
Thu May 15 08:37:20 PDT 2008

Hi metim,

Let me assume all the text is left-aligned. If it isn't, you'd need to use
another paragraph formatting than alignment in the next steps, but you could
still use the same general strategy.

You could then do it with two replacements:

1. -- Replace "red" with "right-aligned".

Paragraphs that contain red text (and only these) are now right-aligned.

2. -- With "Match wildcards" checked,
search for [!^13]@^13 (plus Format > Paragraph > Alignment=Right) and
replace with [RED]^& (plus Format > Paragraph > Alignment=Left).

Regards,
Klaus


"metim" wrote:
>I have a rather large word document that has several words colored in Red
>and
> Green.
> I would like to insert a word a the beginning of every paragraph that
> contains a red or a green word.
> For example the word "[RED]" at the beginning of every paragraph
> containing
> a word colored in red text and the word "[Green]" in front of every
> paragraph
> that containing a word colored in green text.
>
> I hope the above makes sense, any help is much appreciated
>
> Thanks in advance
>


Re: Sherching for a color and inserting text. by metim

metim
Thu May 15 09:08:03 PDT 2008

Klaus,
Thanks for the quick responce. I had hoped to achive this ussing a macro, as
there may be more then just 2 colors.
I had a quick attempt for the red option only my code is below, but this
getts stuck in a infernate loop. any surgestions


Sub Macro3()
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Text = ""
.Font.Color = wdColorRed
.Forward = True
.Wrap = wdFindStop
Do While .Execute
With Selection.Paragraphs
Selection.Collapse wdCollapseStart

MyText = "[RED] "
' Selection Example:
Selection.InsertBefore (MyText)
End With
Loop

End With

"Klaus Linke" wrote:

> Hi metim,
>
> Let me assume all the text is left-aligned. If it isn't, you'd need to use
> another paragraph formatting than alignment in the next steps, but you could
> still use the same general strategy.
>
> You could then do it with two replacements:
>
> 1. -- Replace "red" with "right-aligned".
>
> Paragraphs that contain red text (and only these) are now right-aligned.
>
> 2. -- With "Match wildcards" checked,
> search for [!^13]@^13 (plus Format > Paragraph > Alignment=Right) and
> replace with [RED]^& (plus Format > Paragraph > Alignment=Left).
>
> Regards,
> Klaus
>
>
> "metim" wrote:
> >I have a rather large word document that has several words colored in Red
> >and
> > Green.
> > I would like to insert a word a the beginning of every paragraph that
> > contains a red or a green word.
> > For example the word "[RED]" at the beginning of every paragraph
> > containing
> > a word colored in red text and the word "[Green]" in front of every
> > paragraph
> > that containing a word colored in green text.
> >
> > I hope the above makes sense, any help is much appreciated
> >
> > Thanks in advance
> >
>
>

Re: Sherching for a color and inserting text. by Klaus

Klaus
Thu May 15 09:52:54 PDT 2008

Your code will be a bit slow on long documents, but if your documents aren't
that long and speed isn't an issue, it'll be great.
Else, you could do my two replacements in a macro just as easily...

I've fixed the issues in the code below:

Dim myText As String
myText = "[RED] "
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Text = ""
.Font.Color = wdColorRed
.Forward = True
.Wrap = wdFindStop
Do While .Execute
Selection.Paragraphs(1).Range.InsertBefore myText
Selection.Collapse wdCollapseEnd
Loop
End With

The main issue was:
Selection.Find will search from the current selection downwards, so you need
to collapse the selection to the end after each match, else the same match
is found again and again.

Regards,
Klaus



"metim" wrote:
> Klaus,
> Thanks for the quick responce. I had hoped to achive this ussing a macro,
> as
> there may be more then just 2 colors.
> I had a quick attempt for the red option only my code is below, but this
> getts stuck in a infernate loop. any surgestions
>
>
> Sub Macro3()
> Selection.HomeKey wdStory
> With Selection.Find
> .ClearFormatting
> .Text = ""
> .Font.Color = wdColorRed
> .Forward = True
> .Wrap = wdFindStop
> Do While .Execute
> With Selection.Paragraphs
> Selection.Collapse wdCollapseStart
>
> MyText = "[RED] "
> ' Selection Example:
> Selection.InsertBefore (MyText)
> End With
> Loop
>
> End With
>
> "Klaus Linke" wrote:
>
>> Hi metim,
>>
>> Let me assume all the text is left-aligned. If it isn't, you'd need to
>> use
>> another paragraph formatting than alignment in the next steps, but you
>> could
>> still use the same general strategy.
>>
>> You could then do it with two replacements:
>>
>> 1. -- Replace "red" with "right-aligned".
>>
>> Paragraphs that contain red text (and only these) are now right-aligned.
>>
>> 2. -- With "Match wildcards" checked,
>> search for [!^13]@^13 (plus Format > Paragraph > Alignment=Right) and
>> replace with [RED]^& (plus Format > Paragraph > Alignment=Left).
>>
>> Regards,
>> Klaus
>>
>>
>> "metim" wrote:
>> >I have a rather large word document that has several words colored in
>> >Red
>> >and
>> > Green.
>> > I would like to insert a word a the beginning of every paragraph that
>> > contains a red or a green word.
>> > For example the word "[RED]" at the beginning of every paragraph
>> > containing
>> > a word colored in red text and the word "[Green]" in front of every
>> > paragraph
>> > that containing a word colored in green text.
>> >
>> > I hope the above makes sense, any help is much appreciated
>> >
>> > Thanks in advance
>> >
>>
>>