非常に短いドキュメントを書いているのでない限り、クリーンアップは書くのが最も難しい部分の1つになる可能性があります。次のマクロは、ドキュメントを段落ごとに再確認して、括弧の数がバランスしているかどうかを判断します。マクロは、ドキュメントの各段落の左括弧の数をカウントし、右括弧の数が同じであることを確認します。そうしないと、マクロは、エラーを示す不均衡な段落の前に段落を挿入します。

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

ここには実際には2つのマクロがあることに注意してください。 CountChars関数は、メインのCheckParensマクロ内から呼び出されます。ドキュメントで実際に呼び出す必要があるのは、この後者のマクロ(CheckParens)です。マクロが終了したら、ドキュメントを検索して「Unbalanced parens」という文言を探し、問題が発生している可能性のある場所を確認できます。

また、このマクロの記述方法を変更して、他の「ペアの」文字を検索できることにも注意してください。あなたがする必要があるのは、OpenChar、CloseChar、およびMsgText変数に割り当てられているものを変更することだけです。たとえば、一致しないブラケットをチェックする場合は、次の方法でこれらの変数を変更できます。

OpenChar = "["

CloseChar = "]"

MsgText = "Unbalanced brackets in the next paragraph"

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1018)は、Microsoft Word 2007、2010、2013、および2016に適用されます。Wordの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ word-Checking_for_Matching_Parentheses [一致する括弧のチェック]