Saturday, January 25, 2014

How to Extract Wild Card Matches in Word Document using Word VBA / Export Find Matches to Text File using VBA

How to use Word VBA to Find Wild Card Matches in Multiple Word Documents and Extract them 

There are many situations where a particular format throughout the document that needs to be extracted. The answer would be 

1) Wild Card Search
2) Regular expressions

Lets consider wild card search for this post for a document that contains Reference Citations within square brackets [...]

The following snippet Loops through all documents in a folder, opens them and searches for content within Square Brackets 

It exports the matches to a Text File (Can store in Excel also)

Sub Extract_WildCard_Matches()

Dim sWildCard As String
Dim sDir
Dim oWD As Word.Document
Dim sPath As String

sWildCard = "\[[!\[\]]{1,}\]"

sPath = "C:\Documents\"
sDir = Dir$(sPath & "*.docx", vbNormal)

Do Until LenB(sDir) = 0

 Set oWD = Documents.Open(sPath & sDir)

    Open "C:\Match_Output.txt" For Append As #1
        Selection.HomeKey wdStory, wdMove
        Selection.Find.Execute FindText:=sWildCard, MatchWildcards:=True
        Do While Selection.Find.Found
            Print #1, ActiveDocument.Name & vbTab & Selection.Range.Text
            Selection.Range.Collapse wdCollapseEnd
    Close #1

 oWD.Close False

 sDir = Dir$


End Sub


  1. This code was very helpful, thanks!

  2. Thank you this helps

  3. Anonymous1:55 PM

    Thanks this was just what I was looking for although Recording macros did help too. Other optional approaches to scanning text for patterns I found was the VBA Like operator (e.g. Works for Excel too

  4. How would you extend the functionality to include footnotes etc


Share on Facebook
Related Posts Plugin for WordPress, Blogger...
Download Windows Live Toolbar and personalize your Web experience! Add custom buttons to get the information you care about most.