Solved

MS Word Macro to Highlight Text

Posted on 2009-05-12
6
906 Views
Last Modified: 2012-06-27
Hi,

I need to write a macro or other code to achieve the following goal when a document is opened.

1) Display the word document
2) Highlight any words in the document which are in the clipboard.

The request sound simple enough but thus far I am stumped as how to approach this.

Here is a samle of the clipboard contents:
Index of INC_DOCS  -  telephone and perry

P:\PUBLIC\INC_DOCS\86804.doc      6 Hits
P:\PUBLIC\INC_DOCS\36905.doc      4 Hits
P:\PUBLIC\INC_DOCS\97053.doc      3 Hits
P:\PUBLIC\INC_DOCS\86083.doc      2 Hits
P:\PUBLIC\INC_DOCS\53412.doc      2 Hits
P:\PUBLIC\INC_DOCS\62894.doc      2 Hits
P:\PUBLIC\INC_DOCS\93763.doc      3 Hits
P:\PUBLIC\INC_DOCS\46199.doc      3 Hits
P:\PUBLIC\INC_DOCS\80905.doc      2 Hits
P:\PUBLIC\INC_DOCS\90660.doc      3 Hits
P:\PUBLIC\INC_DOCS\97363.doc      3 Hits
P:\PUBLIC\INC_DOCS\85723.doc      7 Hits
P:\PUBLIC\INC_DOCS\96224.doc      3 Hits
P:\PUBLIC\INC_DOCS\85723.rtf      4 Hits
P:\PUBLIC\INC_DOCS\86177.doc      2 Hits
P:\PUBLIC\INC_DOCS\76956.doc      2 Hits
P:\PUBLIC\INC_DOCS\83505.doc      2 Hits
P:\PUBLIC\INC_DOCS\91948.doc      3 Hits
P:\PUBLIC\INC_DOCS\94205.doc      2 Hits
P:\PUBLIC\INC_DOCS\96517.doc      2 Hits
0
Comment
Question by:systemssupply
  • 3
  • 2
6 Comments
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 24368903
The approach that I would take is to open a new document, and paste the clipboard contents therein.

Then I would take each line and do a Find and Replace in the original document, the Replace to apply a highlighting colour to anything found.
0
 

Author Comment

by:systemssupply
ID: 24369094
That sound logical but raises another question. In my example "Index of INC_DOCS  -  telephone and perry "

If I run a find and replace  the whole string will not be in the document. Rather, the words telephone, perry will be in the document.

How can I tell the find / replace to search for any of the words not the whole string?
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 24369385
I'm not quite sure that I understand the problem, but you if you want to find one or another of two words, you can do two successive searches.
0
 

Author Comment

by:systemssupply
ID: 24370906
True, I could run two searches however, in my example I had two words in a boolean search setup. It could also be additional words. I think that I need to find a way to export these terms into some sort of array to search on.
0
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 24372232
If the order of the words is important you could try using wildcards to check and then
do a highlight find and replace on each word:

Find: telephone*perry

Otherwise you would have to check each word and only highlight the words if all were found.
Sub CallMultiFind()
    Dim SomeWords(1) As Variant
    
    SomeWords(0) = "telephone"
    SomeWords(1) = "perry"
    MultiFind ActiveDocument, SomeWords
End Sub
 
Sub MultiFind(Doc As Document, TheWords())
    Dim i As Integer
    
    For i = 0 To UBound(TheWords)
        If Not Doc.Range.Find.Execute(TheWords(i)) Then
            Exit Sub
        End If
    Next i
    For i = 0 To UBound(TheWords)
        With Doc.Range.Find
        .Text = TheWords(i)
        .Replacement.Highlight = True
        .Execute Replace:=wdReplaceAll
        End With
    Next i
End Sub

Open in new window

0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I would like to show you some basics you can do with Mailings in MS Word. It´s quite handy feature you can use for creating envelopes, labels, personalized letters etc. First question could be what is this feature good for? Mailing can really he…
Using Word 2013, I was experiencing some incredible lag when typing.  Here's what worked for me....
The viewer will learn how to make their project stand out over others by learning how to change colors and shapes, add spaces, change directions, and add bullets to their charts.
This Micro Tutorial well show you how to find and replace special characters in Microsoft Word. This is similar to carriage returns to convert columns of values from Microsoft Excel into comma separated lists.

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question