Capitalizing the First Letter after a Quote Mark

Written by Allen Wyatt (last updated August 7, 2021)
This tip applies to Word 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365


Phil notes that Word is great at automatically capitalizing the first letter of sentences. However, he writes conversational fiction, which means he has a lot of sentences that begin with quote marks. Word won't automatically capitalize the first letter within a quote that starts a sentence, so Phil wonders if there is some setting that can correct this issue.

There is no setting in Word that will handle this situation. However, you could easily create a macro to make sure that the desired characters are uppercase. The macro could rely on the fact that you could use Find and Replace to do the work for you. Assuming that your back-and-forth dialogue results in the quotes beginning on their own paragraphs, you just need to search for a hard return, followed by a quote mark, and then followed by a letter. This could easily be replaced with the hard return, the quote mark, and the uppercase version of the letter. Here's an example of a macro that does this:

Sub QuoteCaps1()
    Dim J As Integer
    Dim sFind As String
    Dim sRep As String

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    For J = 97 To 122
        sFind = "^p" & Chr(34) & Chr(J)
        sRep = "^p" & Chr(34) & Chr(J - 32)

        With Selection.Find
            .Text = sFind
            .Replacement.Text = sRep
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next J
End Sub

The heart of the macro is the For...Next loop which steps through all the lowercase letters (ASCII codes 97 through 122) and puts together both the search and replace strings. The search string (stored in the sFind variable) consists of the hard return (^p) followed by a quote mark and then the lowercase character. The replace string (stored in the sRep variable) is the same, except it uses an uppercase character, calculated by subtracting 32 from the ASCII value of the lowercase character.

The macro effectively performs 26 find and replace operations on your document, but it does them very quickly. If your document is short, then the macro seems to run almost instantly. If your document is much longer, then it may take a few moments to run.

Perhaps, though, your dialogue doesn't always begin at the start of a paragraph, as in the following example:

Morris nodded his head. "of course it works that way."

If you want the macro to catch lowercase letters following any opening quote marks, then all you need to do is to modify the macro to exclude the "^p" that is added to the beginning of the sFind and sRep variables. That may have unintended consequences, however, if your dialogue is similar to this:

Morris lunged across the desk. "where is she," he demanded, "and is she OK?"

In this situation, the macro would capitalize both the "where" and the "and," though you probably don't want the "and" to be capitalized. If your prose may have such usage, you'll need a more complex macro, such as the following:

Sub QuoteCaps2()
    Dim J As Integer
    Dim K As Integer
    Dim sFind As String
    Dim sRep As String
    Dim sTerm As String

    sTerm = ".!?"

    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting

    For J = 97 To 122
        sFind = "^p" & Chr(34) & Chr(J)
        sRep = "^p" & Chr(34) & Chr(J - 32)

        With Selection.Find
            .Text = sFind
            .Replacement.Text = sRep
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next J

    For J = 1 To Len(sTerm)
        For K = 97 To 122
            sFind = Mid(sTerm, J, 1) & " " & Chr(34) & Chr(K)
            sRep = Mid(sTerm, J, 1) & " " & Chr(34) & Chr(K - 32)

            With Selection.Find
                .Text = sFind
                .Replacement.Text = sRep
                .Forward = True
                .Wrap = wdFindContinue
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            Selection.Find.Execute Replace:=wdReplaceAll
        Next K
    Next J
End Sub

This version of the macro still steps through and capitalizes quoted letters at the beginning of paragraphs, but then it starts doing searches for any quotes that start sentences. Note the use of the sTerm string, which contains characters that can end sentences—a period, an exclamation mark, and a question mark. (You can expand the number of sentence-terminating characters, if you'd like.) The macro steps through each of these characters and puts together both sFind and sRep variables that consist of the character, a space, a quote mark, and a lowercase letter. These are replaced with the uppercase equivalents.

As you can imagine, this macro will take just a bit longer to run. Why? Because where the first macro did 26 find and replace operations, this one does at least 104, and if you lengthen what is in the sTerm variable, each new character will add 26 additional find and replace operations.

Note:

If you would like to know how to use the macros described on this page (or on any other page on the WordTips sites), I've prepared a special page that includes helpful information. Click here to open that special page in a new browser tab.

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (13893) applies to Microsoft Word 2007, 2010, 2013, 2016, 2019, and Word in Microsoft 365.

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

Printing Return Address Labels

Want an easy way to create your own return address labels? Word provides the tool as a feature of the program.

Discover More

Deleting a Page

Want to delete the current page? There is no automatic command to perform this task in Word, but you can create your own ...

Discover More

Inserting the User's Name in a Cell

Need to understand who is using a particular workbook? There are a number of ways you can find out, as discussed in this tip.

Discover More

The First and Last Word on Word! Bestselling For Dummies author Dan Gookin puts his usual fun and friendly candor back to work to show you how to navigate Word 2013. Spend more time working and less time trying to figure it all out! Check out Word 2013 For Dummies today!

More WordTips (ribbon)

Adding an Optional Break

The no-width optional break is primarily used for Asian languages in Word. It can have value for English-speakers, as ...

Discover More

Quickly Moving Text with the Mouse

Drag-and-drop editing is a handy feature when you love to use the mouse. There are two ways you can move text using the ...

Discover More

Unknown Non-Printing Characters

When you paste information into Word from the internet, you may get more than just the plain text you hoped for. This tip ...

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}] (all 7 characters, in the sequence shown) 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 1 + 1?

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)


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.

Videos
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.