Если вы не пишете очень короткие документы, очистка может быть одной из самых сложных частей написания. Следующий макрос дважды проверяет ваш документ, абзац за абзацем, чтобы определить, сбалансировано ли у вас количество круглых скобок. Макрос подсчитывает количество левых круглых скобок в каждом абзаце вашего документа и следит за тем, чтобы у вас было одинаковое количество правых скобок. Если вы этого не сделаете, макрос вставит абзац перед несбалансированным абзацем, указывая на ошибку.

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

Обратите внимание, что на самом деле здесь есть два макроса. Функция CountChars вызывается из основного макроса CheckParens. Именно этот последний макрос (CheckParens) вы должны вызывать в своем документе. Когда макрос будет завершен, вы можете выполнить поиск по документу, ища формулировку «Несбалансированные скобки», чтобы увидеть, где могут возникнуть проблемы.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1308) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Checking_for_Matching_Parentheses [Проверка на соответствие круглых скобок].