Please Note: This article is written for users of the following Microsoft Word versions: 2007, 2010, 2013, 2016, 2019, and Word in Office 365. 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 17, 2020)

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, 2013, 2016, 2019, and Word in Office 365. 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

Understanding Font Styles

Fonts, by default, come with one or more styles that define variations of how that font is displayed in your document. ...

Discover More

Automatic Blank Pages at the End of a Section

If you want to have a blank page at the end of a document section, you can insert one manually or you can use the ...

Discover More

Jumping to the End of Page after Enter

Imagine you start typing in a new document, and when you press the Enter key the cursor jumps a huge distance to the ...

Discover More

Do More in Less Time! Are you ready to harness the full power of Word 2013 to create professional documents? In this comprehensive guide you'll learn the skills and techniques for efficiently building the documents you need for your professional and your personal life. Check out Word 2013 In Depth today!

More WordTips (ribbon)

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

Word Counts for a Group of Documents

Getting a word count for a single document is easy. Getting an aggregate word count for a large number of documents can ...

Discover More

Word Count for a Section

Dynamic word counts for your entire document are easy to get when you use using fields. There is no built-in method to ...

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 3 - 2?

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.