Word.Tips.Net Welcome toWord.Tips.Net

Helpful Links

Tips.Net Home
WordTips Home

Ask a Word Question
Make a Comment

Tips.Net Store

WordTips FAQ
WordTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
WordTips Site

Newest Tips

Setting Fraction Bar Overhang Spacing in the Equation Editor

Printing On Both Sides of the Paper

Turning Off AutoComplete for Dates

Ordering Search and Replace

Understanding Auto Line Spacing

Adding Comments to Your Document

Conditional Calculations in Word

 

Adding Quoted Words to an Index

Summary: It is not unusual to need to convert one notation in a document into another entirely different notation. For instance, you may need to convert words or phrases surrounded by quote marks into words that are included in an index for the document. This may appear difficult, but can be rather easily accomplished by using a macro. (This tip works with Microsoft Word 97, Word 2000, Word 2002, Word 2003, and Word 2007.)

Mike has a document that contains quite a few words surrounded by quote marks. He would like the quoted words to be marked for inclusion in an index and for the quote marks to be removed.

The best way to make such a change in your document is through the use of a macro. The macro needs to search for the quoted text, figure out where it starts and stops, delete the quote marks, and then add the index mark. (The mark is added through the use of an XE field.)

There are probably many ways that such a macro could be constructed. The following is one that could be used:

Sub QuotesToIndexEntries()
    Dim iOpenQuote As Integer
    Dim iCloseQuote As Integer
    Dim sP As String
    Dim sPhrase As String
    Dim iParas As Integer

    If Selection.ExtendMode Then Exit Sub

    iParas = Selection.Paragraphs.Count
    Selection.StartOf unit:=wdParagraph, Extend:=wdMove
    For J = 1 To iParas
        Selection.MoveEnd unit:=wdParagraph
        sP = Selection.Text
        iOpenQuote = InStr(sP, Chr(34))
        If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))

        While iOpenQuote > 0
            iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(34))
            If iCloseQuote = 0 Then
                iCloseQuote = InStr(iOpenQuote + 1, sP, Chr(148))
            End If
            If iCloseQuote > 0 Then
                sPhrase = Mid(sP, iOpenQuote + 1, _
                  iCloseQuote - iOpenQuote - 1)
                Selection.Collapse Direction:=wdCollapseStart
                Selection.MoveRight unit:=wdCharacter, _
                  Count:=iOpenQuote - 1, Extend:=wdMove
                Selection.Delete unit:=wdCharacter, Count:=1
                Selection.MoveRight unit:=wdCharacter, _
                  Count:=Len(sPhrase), Extend:=wdMove
                Selection.Delete unit:=wdCharacter, Count:=1

                Selection.Fields.Add Range:=Selection.Range, _
                  Type:=wdFieldEmpty, _
                  PreserveFormatting:=False
                Selection.MoveLeft unit:=wdCharacter, Count:=1
                Selection.Delete unit:=wdCharacter, Count:=2
                Selection.TypeText Text:="XE " + Chr(34) + _
                  sPhrase + Chr(34)
                Selection.MoveRight unit:=wdCharacter, _
                  Count:=1, Extend:=wdMove
            End If
            Selection.MoveEnd unit:=wdParagraph
            sP = Selection.Text
            iOpenQuote = InStr(sP, Chr(34))
            If iOpenQuote = 0 Then iOpenQuote = InStr(sP, Chr(147))
        Wend
        
        Selection.MoveStart unit:=wdParagraph, Count:=1
    Next J
End Sub

In order to use the macro, just select the text you want to affect prior to running it. (If you want to affect the entire document, press Ctrl+A before running the macro.)

Tip #3804 applies to Microsoft Word versions: 97 | 2000 | 2002 | 2003 | 2007

Find and Replace Almost Anything! An invaluable resource for learning how to harness the full power of Word's search and replace capabilities. You'll discover everything you need in order to master all the intricacies of finding and replacing elements of your document, including the super-powerful "wildcard searches" available in Word.
 
Check out WordTips: Find and Replace today!