Tech Tip: Converting Smart Punctuation to Straight Punctuation in MS Word

Welcome to MS Office tech tips: quotes and apostrophes edition!

As this blog has discussed before, different clients have different document formatting and commenting requirements. Most of us probably have some clients who require all “smart” punctuation and others who require all “straight” punctuation.

So, what do you do if you don’t want to turn Word’s auto-formatting on and off every time you switch projects?

Well, it can be tricky. But if you’re struggling, I hope you can use the solution I’ve found to make life easier.

I leave Word’s auto-formatting on all the time, since most clients want smart punctuation. Then when I’ve finished a document that the client wants to be straight punctuation only, I convert all the quotes and apostrophes as my last step. In other words, I do everything with smart quotes as I work, and then straighten them as needed in post.

Word’s Find/Replace dialog works well out of the box for converting straight quotes to smart quotes, but going in the opposite direction gets frustrating. I hate frustrating things, but I love macros! So I’ve written a macro that I can run as the final step before turning in my Word document. Now instead of manually using Find/Replace to convert everything, I just click a button. And I’d like to share the macro script with you.

The macro below straightens all the smart double quotation marks and all the smart single quotation marks (including apostrophes). Please feel free to copy it and use it in your projects!

If you don’t know how to paste a macro text into Word, you can check out this YouTube video for easy instructions: How to Copy a Macro to Word 2010. This Word 2010 method should still work in your current version of Word.

Sub SmartToStraight()
'
' SmartToStraight Macro
' Converts smart quotes & apostrophes to straight quotes & apostrophes.
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "'"
.Replacement.Text = "^039"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = """"
.Replacement.Text = "^034"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Hat tip to The Volokh Conspiracy for giving me the clue that made this work.

Happy quoting,
The Detail Woman

Leave a Reply

Your email address will not be published. Required fields are marked *