Проверка соответствия круглых скобок (Microsoft Word)
Если вы не пишете очень короткие документы, очистка может быть одной из самых сложных частей написания. Следующий макрос дважды проверяет ваш документ, абзац за абзацем, чтобы определить, сбалансировано ли у вас количество круглых скобок. Макрос подсчитывает количество левых круглых скобок в каждом абзаце вашего документа и следит за тем, чтобы у вас было одинаковое количество правых скобок. Если вы этого не сделаете, макрос вставит абзац перед несбалансированным абзацем, указывая на ошибку.
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 [Проверка на соответствие круглых скобок]
.