Capitalizing the First Letter after a Quote Mark

by Allen Wyatt
(last updated August 7, 2021)

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

Speeding Up Cursor Movement

If you use the arrow keys to move the insertion point through the document, you may have noticed that it can be slow ...

Discover More

Pasting a Hyperlink

When you paste information into a document, you can specify that it be inserted as a hyperlink rather than as normal ...

Discover More

Checking for Duplicate Rows Based on a Range of Columns

When working with data in Excel, you might want to figure out which rows of data represent duplicates of other rows. If ...

Discover More

Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!

More WordTips (ribbon)

Cut and Paste Formatting

What happens when you copy information from one document and paste it into another? It is possible for what you paste to ...

Discover More

Jumping to the End of the Document in Error

If you inadvertently move to the end of the document, you might be wondering how to get your insertion point back to ...

Discover More

Processing Information Pasted from a PDF File

When pasting information copied from a PDF file, you can end up with a paragraph for each line of the original document. ...

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 two less than 7?

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.