Please Note: This article is written for users of the following Microsoft Word versions: 97, 2000, 2002, and 2003. If you are using a later version (Word 2007 or later), this tip may not work for you. For a version of this tip written specifically for later versions of Word, click here: Checking for Matching Parentheses.
Written by Allen Wyatt (last updated June 24, 2023)
This tip applies to Word 97, 2000, 2002, and 2003
Unless you are writing very short documents, cleaning up can be one of the hardest parts of writing. The following macro double-checks your document, paragraph by paragraph, to determine if you have a balanced number of parentheses. The macro counts the number of left parentheses in each paragraph of your document and makes sure you have the same number of right parentheses. If you don't, the macro inserts a paragraph before the unbalanced paragraph indicating the error.
Sub CheckParens()
Dim WorkPara As String
Dim CheckP() As Boolean
Dim NumPara As Integer, J As Integer
Dim LeftParens As Integer, RightParens As Integer
Dim MsgText As String
NumPara = ActiveDocument.Paragraphs.Count
ReDim CheckP(NumPara)
MsgText = "***Unbalanced parens in the next paragraph"
For J = 1 To NumPara
CheckP(J) = False
WorkPara = ActiveDocument.Paragraphs(J).Range.Text
If Len(WorkPara) <> 0 Then
LeftParens = CountChars(WorkPara, "(")
RightParens = CountChars(WorkPara, ")")
If LeftParens <> RightParens Then CheckP(J) = True
End If
Next J
For J = NumPara To 1 Step -1
If CheckP(J) Then
Selection.HomeKey Unit:=wdStory, Extend:=wdMove
If J > 1 Then
Selection.MoveDown Unit:=wdParagraph, _
Count:=(J - 1), Extend:=wdMove
End If
Selection.InsertParagraphBefore
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Style = "Normal"
Selection.TypeText Text:=MsgText
End If
Next J
End Sub
Private Function CountChars(A As String, C As String) As Integer
Dim Count As Integer
Dim Found As Integer
Count = 0
Found = InStr(A, C)
While Found <> 0
Count = Count + 1
Found = InStr(Found + 1, A, C)
Wend
CountChars = Count
End Function
Note that there are actually two macros here. The CountChars function is called from within the main CheckParens macro. It is this latter macro (CheckParens) that is the one you should actually invoke on your document. When the macro is finished, you can search through the document, looking for the wording "***Unbalanced parens" to see where you may have problems.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1308) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Checking for Matching Parentheses.
Discover the Power of Microsoft Office This beginner-friendly guide reveals the expert tips and strategies you need to skyrocket your productivity and use Office 365 like a pro. Mastering software like Word, Excel, and PowerPoint is essential to be more efficient and advance your career. Simple lessons guide you through every step, providing the knowledge you need to get started. Check out Microsoft Office 365 For Beginners today!
When you type information into a document, what you type normally is inserted just the left of the insertion point. Word ...
Discover MoreNeed to place a bullet in the middle of a sentence? There are a couple of easy ways you can do this, as described in this ...
Discover MoreNonprinting characters are a great boon when you are editing a document. Turn them on and you can easily see what ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2024-06-24 16:39:34
How would this need to change to find text in brackets [thusly] rather than in parnethesis? I assume by replacing "Dim CheckP() As Boolean" and "Dim LeftParens As Integer, RightParens As Integer" and replace other instances of parens with brackets but I don't know the syntax for brackets vs. parens.
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2025 Sharon Parq Associates, Inc.
Comments