The following macro checks the contents of a document against a series of expressions in the second column of the first table in the document, and outputs a count of those matches in the third column of the table. Document contents before the table are not checked (this makes it more flexible for use in a document where you want to exclude the ‘front matter’ from checking). Only minor modifications would be needed to adapt this for Find/Replace purposes.
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim RngDoc As Range, oTbl As Table, strFnd As String, i As Long, j As Long
With ActiveDocument
Set oTbl = .Tables(1)
For i = 1 To oTbl.Rows.Count
strFnd = Split(oTbl.Cell(i, 2).Range.Text, vbCr)(0)
Set RngDoc = ActiveDocument.Range
RngDoc.Start = oTbl.Range.End
With RngDoc
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Format = False
.Text = strFnd
.MatchWholeWord = True
.MatchWildcards = False
.MatchCase = True
.Execute
End With
j = 0
Do While .Find.Found
j = j + 1
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
If j > 0 Then oTbl.Cell(i, 3).Range.Text = j
Next
End With
Application.ScreenUpdating = True
End Sub