#1
|
|||
|
|||
Find and Replace Selected Text or Macro for finding selected text
I regularly have to search in word documents for a list of words and highlight each occurrence of those words. The problem is the list is variable from document to document so I have to copy+paste each word from the list one at a time in the find box and then replace all with highlighting.
Is there a way to set .text for the find function to whatever word(s) have been selected in the document? The idea that I'm trying to achieve is the following workflow: 1) select word(s) 2) press shortcut key for macro 3) macro highlights every occurrence in the document of the word(s) from step 1, including my selection 4) repeat for every word in the list. Thank you for any help you might be able to provide! |
#2
|
|||
|
|||
sample code for my question above
For context, I'm envisioning the following code but with "sample" replaced by code that will refer to whatever has been selected in the document.
Quote:
Last edited by mrplastic; 12-19-2019 at 01:06 PM. Reason: title |
#3
|
||||
|
||||
Try, for example:
Code:
Sub BulkHighlighter() Application.ScreenUpdating = False Dim j As Long, StrFnd As String, HiLt As Long HiLt = Options.DefaultHighlightColorIndex Options.DefaultHighlightColorIndex = wdBrightGreen StrFnd = InputBox("Insert your 'Find' terms with | delimiters, for example:" & vbCr & "the|quick|brown|fox") With ActiveDocument.Range.Find .ClearFormatting .Replacement.ClearFormatting .MatchWholeWord = True .MatchCase = False .Replacement.Highlight = True For j = 0 To UBound(Split(StrFnd, "|")) .Text = Split(StrFnd, "|")(j) .Replacement.Text = "^&" .Execute Replace:=wdReplaceAll Next End With Options.DefaultHighlightColorIndex = HiLt Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#4
|
|||
|
|||
didn't work
Hi! Thank you for your help! Unfortunately, I couldn't get this to work.
The other issue is that I'm trying to avoid any message boxes and conduct this task entirely within the document window. When I have preset lists of terms, I have these all plugged into a macro and it highlights them. Now that I have non-standard lists that solution doesn't work. I'm currently manually entering words into the find & replace window. I'm specifically trying to get the macro to use the words that I select with the cursor in the document as the "find" term to replace with a highlighted version, rather than typing terms into the box. Last edited by mrplastic; 12-20-2019 at 08:09 AM. Reason: forgot to thank you |
#5
|
||||
|
||||
How do you propose to accommodate phrases, as distinct from individual words? My code accommodates words and phrases.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Macro to find text in between two characters and then format selected text? | qcom | Word | 5 | 02-19-2015 11:23 PM |
Find & selected paras with highlighted text & copy to clipboard | marceepoo | Word VBA | 1 | 09-14-2012 08:20 PM |
Macro Delete Selected Text | smonczka | Word VBA | 2 | 11-05-2011 03:18 AM |
Mac Word - replace within selected text only. | bakerbj | Word | 0 | 10-31-2011 11:47 PM |
Selected text and logo in one macro | marijke | Word VBA | 0 | 08-24-2009 07:01 AM |