Omit Needless Words with a Macro

by C.K. MacLeod

Updated May 31, 2022
353183634_ef631ed00a_mOne of the easiest ways to improve your writing is to “omit needless words”—words that once removed, make your writing clear (Strunk & White).

The fastest way to find these words in your writing is to run the Needless Words macro* in Microsoft Word. This macro will highlight every needless word, so you can decide if each word is necessary. Not sure what a macro is? See Improve Your Writing with Macros for details.

NeedlessWords macro in action
NeedlessWords macro in action

Below is the script for the macro. You’ll need to add this script to Word’s Visual Basic Application (VBA). See the videos How to Add a Macro to Word, then How to Run a Macro in Word for next steps.

Inspired by Jami Gold’s macros for writers post, I’ve added Janice Hardy’s Words to Avoid list (minus the word “that”) to my version of the macro. The macro is customizable and you can add any list of words you like.

Copy the macro from Sub to End Sub and paste it into Word’s VBA.


Sub NeedlessWords()
‘ Highlights unnecessary words


‘ Written by Roger Mortis, revised by subcortical, adapted by Jami Gold and tweaked by C.K. MacLeod; further tweaked by Anupam Choudhury; word list by Janice Hardy

Dim range As range
Dim i As Long
Dim StrFnd As String

StrFnd = “then,almost,about,begin,start,decided,planned,very,sat,truly,rather,fairly,really,somewhat,up,down,over,together,behind,out,inorder,around,only,just,even”

For i = 0 To UBound(Split(StrFnd, “,”))

Set range = ActiveDocument.range
With range.Find
.Text = Split(StrFnd, “,”)(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdTurquoise
Loop
End With
Next
End Sub


What other word lists could you add to this macro? Insert word lists between the quotations after StrFnd =.

So, what will you do with the highlighted words this macro finds?

*Karen Woodward calls this macro the AddWords macro because you can add any list of words that you want the macro to find. The first version of this macro was written by Roger Mortis, revised by Subcortical, modified for writing by Karen Woodward, tweaked by Jami Gold, tweaked by me, and elegantly tweaked by Anupam Choudhury, making it a true community effort.

Image by Matt Scott

17 thoughts on “Omit Needless Words with a Macro”

  1. This is great! I ran the macro on my manuscript and it was super helpful to cut out a lot of waste/poorly written material. But … now how do I get the blue highlighting to go away? I’ve been wracking my brains (and Google) to no avail. Thanks!

    1. The NeedlessWords macro is an eye opener, isn’t it?

      To get rid of the highlights in Word, select your entire document (Ctrl+A). In the Home tab, go to the ribbon and click on the text highlight button in the Font area. Click on No Color. That’ll remove all of the highlighting from your document.

      1. Darn … I know how to do that, but I was hoping there was a way to “turn off” the blue highlights from the macro (or to “undo” the macro). I have other spots where text is highlighted in yellow for me to come back to for other reasons, and I’m not ready to eliminate that highlighting, but I would like the smattering of remaining blue highlights to vanish. Sounds like that is not do-able, alas. Thanks for your reply, though.

        1. It is doable, Susanna.

          I’ve offered the simplest solution that will remove all of the highlights from your document, but it’s possible to remove only some. Paul Beverley has designed several “unhighlight” macros for this purpose. The macros are free, and you’ll find them here: http://www.archivepub.co.uk/book.html

          Best of luck!

          1. Great, thank you! I downloaded his book yesterday but hadn’t tried it yet … you’re forcing me to delve into the world of Word macros! 🙂 Thanks again.

        2. Jami, the Macro instigator here. 🙂

          Another option would be using Find and Replace. You could use a blank “Find” box, but with the turquoise highlighting active, and then a blank “Replace” box with “No Formatting.”

          I’m *pretty* sure that would work. 🙂 Good luck!

          1. You’re quite right, Jami. I think your suggestion would also work—thanks for sharing it. There’s always more than one way to accomplish something in Word, isn’t there?

          2. I did try that also, but alas again, Word wanted to delete the entire highlighted word and leave in its place … nothing. That would be useful for bringing my word count down, but not so much for increasing the quality of the writing, unfortunately.

          3. Yes. You want to delete only some of the highlighted words, right Susanna? This is as good a time as any to point out that the macro will highlight words, but you need to decide if the word is needless. In most cases it is, and discovering this will help you to discover your writing “quirks” (we all have them). In some cases, though, the word is essential. Could you go through the doc and delete all the highlighted words that aren’t needed, instance by instance? The remaining highlighted (and essential) words can be handled with the methods Jami and I suggested.

            Understandably, if you have a 300-page manuscript, working instance by instance could take some time. So really, this kind of macro would be best used at the revision stage, and it’s also more manageable if you run it one chapter at a time.

            Let us know what you try…

          4. Yes, I’m a pretty advanced Word user actually, at revision stage with a complete manuscript. I ran the macro and then manually reviewed the entire manuscript and deleted the “needless words” or revised where I wanted to. However, many “needless” words remain highlighted — I’m satisfied with them as-is, yet they are still highlighted blue. I thought I could turn off” the macro so the remaining blue highlights would vanish. But no. And as I’m completing other revisions and deletions, the blue highlights are distracting, but I have a few to-be-revised areas highlighted in yellow, and I don’t want to select all and un-highlight, because I would lose my other highlights as well. Because search and replace deletes the word, that won’t work, because I definitely don’t want hundreds of words deleted from my document after I’ve decided those words should stay. I could try another macro from the book you mentioned, but instead I’ll probably seek out the yellow highlights, handle those, and then “un-highlight” the document — that sounds quickest. Thanks for your help.

          5. Thanks for sharing your process, Susanna.

            You have highlights for other things you’ve flagged, and those highlights are in a different color. It makes a great deal of sense to use different colors for different kinds of revisions.

            I’ve posted another macro on this blog (TellingWords macro) that highlights potential instances of telling (instead of showing) in pink. If you color code each type of revision, you can use Paul Beverley’s UnHighlight macro to remove a highlight of a specific color. Simply click on a word highlighted in the color you want to remove and run the macro (see more details in his guide). I just tried it and it works brilliantly. Otherwise, your approach appears to be quite sensible: handle one kind of revision at a time.

            Thanks for giving this macro a try and for sharing your experiences with it. I know it’s helped me to trim some of the fat in my writing.

  2. Thank you for a VERY helpful post. Is there any way to add a line that excludes certain words from a search? For instance I use a macro that highlights adverbs (-ly) but it will also highlight words like family. Can exclusions be added to a macro? If so, how? Also, do wildcard characters work?

    Thank you very much!

    1. Chris,
      There may be a quick way to exclude words like family with a line of VBA code, but I haven’t determined how to do that yet (this is on my tech learning list). You could customize your own ly word macro. Just plug your ly word list into the “array” macro in this post.

      Best of luck!

Comments are closed.