Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, and 2013. If you are using an earlier version (Word 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Word, click here: Mass Search and Replace.

Mass Search and Replace

by Allen Wyatt
(last updated April 4, 2019)

4

Over time it is very possible to collect a huge number of documents. At some point you may want to make the same change to each of the documents in the collection. For instance, you may need to change the company name within each document. Obviously you can open each document, make the change, and then save the document, but that process can quickly become tiring if you have hundreds or thousands of documents to process.

What to do? Consistent with the point that has been made in other issues of WordTips, anytime you have something that is mundane and tiresome to accomplish, you can often use a macro to handle the work for you. For instance, you could write a macro that would step through all the documents in a directory, load each in turn, search for and change the necessary text, and resave the document. This process is no different than the process you would follow manually, except that it is done under the control of the macro. This makes it much easier and faster.

The following is an example of a Word macro that could do the trick:

Public Sub MassReplace()
    Dim Directory As String
    Dim FType As String
    Dim FName As String

    Directory = "d:\temp"
    FType = "*.docx"

    ChDir Directory
    FName = Dir(FType)
    ' for each file you find, run this loop
    Do While FName <> ""
        ' open the file
        Documents.Open FileName:=FName

        ' search and replace the company name
        selection.Find.ClearFormatting
        selection.Find.Replacement.ClearFormatting
        With selection.Find
            .Text = "OldCompanyName"
            .MatchCase = True
            .Replacement.Text = "NewCompanyName"
        End With
        selection.Find.Execute Replace:=wdReplaceAll

        ' replace street address
        With selection.Find
            .Text = "OldStreetAddress"
            .Replacement.Text = "NewStreetAddress"
        End With
        selection.Find.Execute Replace:=wdReplaceAll

        ' replace the City, State, and Zip code
        With selection.Find
            .Text = "OldCityStateAndZip"
            .Replacement.Text = "NewCityStateAndZip"
        End With
        selection.Find.Execute Replace:=wdReplaceAll

        ' save and close the current document
        ActiveDocument.Close wdSaveChanges

        ' look for next matching file
        FName = Dir
    Loop
End Sub

This macro is quite powerful, and it allows you to not just change a company name, but also your company's address. All you need to do is make changes to specify which directory and drive to use in your search, as well as what the old and new company information is.

If dealing with macros is a little beyond what you want to tackle, there are also a number of different commercial products available that will work with Word documents. Various subscribers have suggested the following programs:

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (8477) applies to Microsoft Word 2007, 2010, and 2013. You can find a version of this tip for the older menu interface of Word here: Mass Search and Replace.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Ignoring Selected Words when Sorting

If you use Excel to maintain a list of text strings (such as movie, book, or product titles), you may want the program to ...

Discover More

Shrinking Workbook Size

As you work with a workbook over time, it is possible for the workbook to grow to a huge size. If you want to shrink the ...

Discover More

Formatting Lots of Tables

Do you need a quick way to format your tables? Believe it or not, there are several tools you can use from Word's arsenal ...

Discover More

Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!

More WordTips (ribbon)

Word Count is Zero

If you use the Word Count tool and are surprised that it returns a count of 0, it could be because of what you selected ...

Discover More

Hyphenating a Selection

Word provides a hyphenation tool that can help you hyphenate words within a document. If you want to apply hyphenation to ...

Discover More

Auto Creation of an Acronym List

If you use a lot of acronyms in your documents, you may want a quick way to compile those acronyms and their definitions ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is nine more than 4?

2018-05-22 16:03:38

Daniel Nguyen

I got the Runtime Error 5174 Message after the macro changed 1 file.

I kept the code mostly the same, but modified the following:

ChDir Directory
FName = Dir(FType)
' for each file you find, run this loop
Do While FName <> ""
ChDir Directory
' open the file
Documents. Open FileName:=FName


2015-10-09 02:44:31

Chris

I seem to have the same problem. It loops through the folder and opens some documents but at the end I always get a runtime error 5174.


2015-09-16 12:55:44

Norman Baines

For some reason it seems not to like long folder names. I moved my files into C:tmp and it worked well


2015-09-15 13:52:21

Terri Deviley

It comes up with a runtime error 5174 saying that it can't find the file but the file is definitely there.

Using Word 2010, thanks.


This Site

Got a version of Word that uses the ribbon interface (Word 2007 or later)? This site is for you! If you use an earlier version of Word, visit our WordTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.