Make Your Writing Readable with the Plain Language Macro

Embraced by wordsby C.K. MacLeod

Updated March 14, 2019.

Do you write or edit nonfiction? If you do, you need to know that readers are time pressed.

One way to make the reading experience more accessible to readers is to find ten-dollar words in your writing and swap them out with simpler words that most readers will be able to read and understand. It’s best to write as clearly and as simply as you can.

The PlainLanguage macro below will, with a few keystrokes, highlight in yellow all the words in your writing that are difficult* to read and understand. Consider replacing these words with the alternatives listed at on the Use simple words and phrases list at plainlanguage.gov.

*Note: The difficult words in the macro script are from the word list at plainlanguage.gov.

Copy the macro below from Sub to End Sub and paste it into Word’s Visual Basic Application (VBA).

Remember to use judgement with the results of any macro. This macro will highlight difficult words, but only you can decide if each word is helping or hindering the reader.

Not sure what a macro is? See this post for an explanation. Also, see the free 20-minute Macro Course on this blog. It’ll have you up and running with macros in Word in no time!


Sub PlainLanguage()

‘ Highlights complex words

‘ Written by Roger Mortis, revised by Subcortical, adapted by

‘Jami Gold and further adapted by C.K. MacLeod; word list:

‘Simple Words and Phrases by www.plainlanguage.gov

‘http://www.plainlanguage.gov/howto/wordsuggestions/simplewords.cfm#cd

Dim range As range
Dim i As Long
Dim TargetList
TargetList = Array(“/”, “a number of”, “accompany”, “accomplish”, “accorded”, “accordingly”, “accrue”, “accurate”, “additional”, “address”, “addressees”, “addressees are requested”, “adjacent to”, “advantageous”, “adversely impact on”, “advise”, “afford an opportunity”, “aircraft”, “allocate”, “anticipate”, “apparent”, “appreciable”, “appropriate”, “approximate”, “arrive onboard”, “as a means of”, “as prescribed by”, “ascertain”)
For i = 0 To UBound(TargetList)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList1
TargetList1 = Array(“assist”, “assistance”, “at the present time”, “attain”, “attempt”, “basis”, “be advised”, “benefit”, “by means of”, “capability”, “caveat”, “close proximity”, “combat environment”, “combined”, “commence”, “comply with”, “component”, “comprise”, “concerning”, “consequently”, “consolidate”, “constitutes”, “contains”, “convene”, “currently”, “deem”, “delete”, “demonstrate”)
For i = 0 To UBound(TargetList1)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList1(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList2
TargetList2 = Array(“depart”, “designate”, “desire”, “determine”, “disclose”, “discontinue”, “disseminate”, “due to the fact that”, “during the period”, “effect modifications”, “elect”, “eliminate”, “employ”, “encounter”, “endeavor”, “ensure”, “enumerate”, “equipments”, “equitable”, “establish”, “etc.”, “evidenced”, “evident”, “exhibit”, “expedite”, “expeditious”, “expend”, “expertise”)
For i = 0 To UBound(TargetList2)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList2(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList3
TargetList3 = Array(“expiration”, “facilitate”, “failed to”, “feasible”, “females”, “finalize”, “for a period of”, “forfeit”, “forward”, “frequently”, “function”, “furnish”, “has a requirement for”, “herein”, “heretofore”, “herewith”, “however”, “identical”, “identify”, “immediately”, “impacted”, “implement”, “in a timely manner”, “in accordance with”, “in addition”, “in an effort to”, “in as much as”, “in lieu of”)
For i = 0 To UBound(TargetList3)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList3(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList4
TargetList4 = Array(“in order that”, “in order to”, “in regard to”, “in relation to”, “in the amount of”, “in the event of”, “in the near future”, “in the process of”, “in view of”, “in view of the above”, “inception”, “incumbent upon”, “indicate”, “indication”, “initial”, “initiate”, “inter alia”, “interface”, “interpose no objection”, “is applicable to”, “is authorized to”, “is in consonance with”, “is responsible for”, “it appears”, “it is”, “it is essential”, “it is requested”, “liaison”)
For i = 0 To UBound(TargetList4)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList4(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList5
TargetList5 = Array(“limited number”, “magnitude”, “maintain”, “maximum”, “methodology”, “minimize”, “minimum”, “modify”, “monitor”, “necessitate”, “notify”, “not later than”, “notwithstanding”, “numerous”, “objective”, “obligate”, “observe”, “operate”, “optimum”, “option”, “parameters”, “participate”, “perform”, “permit”, “pertaining to”, “portion”, “possess”, “practicable”)
For i = 0 To UBound(TargetList5)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList5(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList6
TargetList6 = Array(“preclude”, “previous”, “previously”, “prior to”, “prioritize”, “proceed”, “procure”, “proficiency”, “promulgate”, “provide”, “provided that”, “provides guidance for”, “purchase”, “pursuant to”, “reflect”, “regarding”, “relative to”, “relocate”, “remain”, “remain”, “remainder”, “remuneration”, “render”, “represents”, “request”, “require”, “requirement”, “reside”)
For i = 0 To UBound(TargetList6)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList6(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList7
TargetList7 = Array(“retain”, “said”, “selection”, “set forth in”, “similar to”, “solicit”, “some”, “state-of-the-art”, “subject”, “submit”, “subsequent”, “subsequently”, “substantial”, “successfully complete”, “such”, “sufficient”, “take action to”, “terminate”, “the month of”, “the undersigned”, “the use of”, “there are”, “there is”, “therefore”, “therein”, “thereof”, “this activity”, “time period”)
For i = 0 To UBound(TargetList7)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList7(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next

Dim TargetList8
TargetList8 = Array(“timely”, “transmit”, “type”, “under the provisions of”, “until such time as”, “utilization”, “utilize”, “validate”, “viable”, “vice”, “warrant”, “whereas”, “with reference to”, “with the exception of”, “witnessed”, “your office”)
For i = 0 To UBound(TargetList8)
Set range = ActiveDocument.range
With range.Find
.Text = TargetList8(i)
.Format = True
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdyellow
Loop
End With
Next
End Sub


Image by Robbert van der Steeg