A meno che tu non stia scrivendo documenti molto brevi, la pulizia può essere una delle parti più difficili della scrittura. La seguente macro controlla il tuo documento, paragrafo per paragrafo, per determinare se hai un numero equilibrato di parentesi. La macro conta il numero di parentesi sinistre in ogni paragrafo del documento e si assicura che tu abbia lo stesso numero di parentesi destre. In caso contrario, la macro inserisce un paragrafo prima del paragrafo sbilanciato indicando l’errore.

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

Nota che in realtà ci sono due macro qui. La funzione CountChars viene chiamata dall’interno della macro CheckParens principale. È quest’ultima macro (CheckParens) quella che dovresti effettivamente invocare sul tuo documento. Quando la macro è terminata, puoi cercare nel documento, cercando la dicitura “Parens sbilanciati” per vedere dove potresti avere problemi.

Nota, inoltre, che il modo in cui è scritta questa macro, potresti facilmente modificarla per cercare altri caratteri “accoppiati”. Tutto quello che devi fare è cambiare ciò che è assegnato alle variabili OpenChar, CloseChar e MsgText. Ad esempio, se volessi verificare la presenza di parentesi non corrispondenti, potresti cambiare quelle variabili in questo modo:

OpenChar = "["

CloseChar = "]"

MsgText = "Unbalanced brackets in the next paragraph"

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (1018) si applica a Microsoft Word 2007, 2010, 2013 e 2016. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Word qui: