![]() |
|
#1
|
|||
|
|||
![]() I am creating macros to assist with the teaching of Braille. I need to create a macro to highlight all words in a document that contain the text "ever". I thought ".parent" would refer to the word that contained the search text, but it did not seem to work. Your help would be appreciated. Norman My code: Sub FindEver() Set oRng = ActiveDocument.Range ' Search document for specified text and highlight parent word. Selection.HomeKey Unit:=wdStory With oRng.Find .Text = "ever" .Wrap = wdFindStop 'stops at the end of the document While .Execute oRng.Characters.Parent.HighlightColorIndex = wdYellow Wend End With End Sub |
#2
|
||||
|
||||
![]()
Hi norgro,
You can't select discontiguous ranges with a macro, so your Find/Replace would have to use something like: Code:
Sub Demo() With ActiveDocument.Content.Find .ClearFormatting .Text = Selection.Text With .Replacement .ClearFormatting .Text = "^&" .Highlight = True End With .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute Replace:=wdReplaceAll End With End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]()
Paul
Thank you for replying. I am not sure that I explained my problem very well. Given text that has words containing "ever", for example: ever never clever beverage reverberate, I want to highlight every word in that text that contains "ever". So, for example, I want the whole word "never" to be highlighted, and every other whole word that contains "ever". In creating the code, I assumed, for example, that "never" was the parent of "ever", but that apparently is not the case. |
#4
|
||||
|
||||
![]()
Hi norgro,
The mere fact that a string can be found in various words doesn't make one the parent of the other. For what you're after, try: Code:
Sub Demo() With ActiveDocument.Content With .Find .ClearFormatting .Text = Selection.Text With .Replacement .ClearFormatting .Text = "" End With .Forward = True .Wrap = wdFindStop .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With While .Find.Found = True .Expand wdWord If Right(.Text, 1) = " " Then .End = .End - 1 End If .HighlightColorIndex = wdBrightGreen .Collapse wdCollapseEnd .Find.Execute Wend End With End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
![]()
Paul
Your suggestion worked brilliantly!! My first attempt failed because of a typographical error on my part. Thanks again Norman |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
AtaLoss | Word VBA | 37 | 09-22-2021 12:04 PM |
![]() |
cnyoon2 | Word | 1 | 08-04-2015 08:16 AM |
![]() |
Arbie | Word | 1 | 03-31-2012 05:22 AM |
Highlight un-identifiable | wolfer | Word VBA | 0 | 08-24-2011 06:37 AM |
find - reading highlight - highlight all / highlight doesn't stick when saved | bobk544 | Word | 3 | 04-15-2009 03:31 PM |