A menos que esté escribiendo documentos muy breves, la limpieza puede ser una de las partes más difíciles de la escritura. La siguiente macro comprueba su documento, párrafo por párrafo, para determinar si tiene un número equilibrado de paréntesis. La macro cuenta el número de paréntesis izquierdos en cada párrafo de su documento y se asegura de que tenga el mismo número de paréntesis derechos. Si no lo hace, la macro inserta un párrafo antes del párrafo desequilibrado que indica el 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     Dim OpenChar As String     Dim CloseChar As String

OpenChar = "("

CloseChar = ")"

MsgText = "Unbalanced parens in the next paragraph"



NumPara = ActiveDocument.Paragraphs.Count     ReDim CheckP(NumPara)



For J = 1 To NumPara         CheckP(J) = False         WorkPara = ActiveDocument.Paragraphs(J).Range.Text         If Len(WorkPara) <> 0 Then             LeftParens = CountChars(WorkPara, OpenChar)

RightParens = CountChars(WorkPara, CloseChar)

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

Tenga en cuenta que en realidad hay dos macros aquí. La función CountChars se llama desde la macro principal de CheckParens. Es esta última macro (CheckParens) la que realmente debería invocar en su documento. Cuando termine la macro, puede buscar en el documento, buscando la frase «Parens desequilibrados» para ver dónde puede tener problemas.

Tenga en cuenta, además, que la forma en que se escribe esta macro, puede modificarla fácilmente para buscar otros caracteres «emparejados». Todo lo que necesita hacer es cambiar lo que se asigna a las variables OpenChar, CloseChar y MsgText. Por ejemplo, si quisiera verificar si hay corchetes que no coinciden, puede cambiar esas variables de esta manera:

OpenChar = "["

CloseChar = "]"

MsgText = "Unbalanced brackets in the next paragraph"

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (1018) se aplica a Microsoft Word 2007, 2010, 2013 y 2016. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Word aquí:

link: / word-Checking_for_Matching_Parentheses [Comprobación de paréntesis coincidentes].