![]() |
|
|
|
#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 |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Find and highlight multiple words in MS Word document
|
AtaLoss | Word VBA | 37 | 09-22-2021 12:04 PM |
how to selectively highlight text in word
|
cnyoon2 | Word | 1 | 08-04-2015 08:16 AM |
Want "cloud" shape in Word, to highlight changes
|
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 |