Wordでスペルチェックや文章校正をしたときに、英語の明らかなスペルミスがあるのにチェックされなかった経験はありませんか?
以下のように、様々な理由が考えられます。
トラブルシューティング : スペルチェックや文章校正などの校正ツール
今回の記事では、その原因の1つである「スペルチェックや文章校正を行わない」がオンになっている状態を簡単に探せるマクロをご紹介します。
セミナーの受講生の方からこのテーマをいただいました。どうもありがとうございます。
<目次>
「スペルチェックや文章校正を行わない」という設定
Wordには、スペルチェックや文章校正をしたときに、特定個所をチェック対象外に設定する機能があります。
不完全な文章や、俗語を含んだ文章がかかれているような部分がある場合に用います。
文頭が小文字で始まるように文章に意図的に書いている場合もそうかもしれません。
以下の方法で設定ができます。
自分で意図的にこの設定をしていれば問題ありません。
しかし、他人からもらったWord文書に部分的にこの機能が設定されていると厄介ですね。
この設定は、ユーザー設定するスタイルにも適用できますから、社内文書でもひょっとしたら気づかずに使っていることがあるかもしれません。
このマクロでできること
本文中で、「スペルチェックや文章校正を行わない」がオンに設定されている部分があると、その部分を含む段落全体を「明るい緑」の蛍光ペンで着色します。
マクロの解説
段落ごとに、「スペルチェックや文章校正を行わない」の設定を確認します。
これは、NoProofing プロパティで設定します。
For Each ... Next ステートメントで、段落1つ1つで判定します。
工夫している点は、「スペルチェックや文章校正を行わない」が段落のうち部分的に設定されているときの判定も取り入れている点です。
If .NoProofing = True Or _
.NoProofing = wdUndefined Then
1つの段落中に、設定がオンになっている部分とオフになっている部分が混在しているときには、wdUndefined の値になります。
これは、蛍光ペンの色の判定でも使いました。選択範囲内で蛍光ペンの色が混在している場合には、蛍光ペンの色は、wdUndefined となります。(特定の蛍光ペンを消すマクロ)
マクロ
Sub スペルチェックと文章校正対象外の個所を着色する() Dim myPara As Paragraph For Each myPara In ActiveDocument.Paragraphs With myPara.Range If .NoProofing = True Or _ .NoProofing = wdUndefined Then .HighlightColorIndex = wdBrightGreen End If End With Next myPara End Sub