昨日のセミナー(翻訳チェックソフト「色deチェック」の説明会)の受講生とセミナー後にお話をしていたときに、思いついたマクロです。
「ので」など、特定の言葉が1文に2回以上出てくると読みづらくなるので、その文章をマーキングしたいとのことでした。
つまり、「・・・・なので、・・・・・・・・なので、・・・・・・となりました。」のような文章をマーキングしたいということでした。
ワイルドカードを用いた検索をして処理をしようと思ったのですが、もっとシンプルなマクロを思いつきました。
「ので」以外にも使えると思います。
▼このマクロでできること
処理対象の文章を開いてマクロを実行します。
「ので」が1文中で2回以上記載されている場合、その文章が明るい緑色の蛍光ペンで着色されます。
▼マクロの解説
わかりやすくしようと思って、かなり冗長に書きました。
すべての文章に対して判定処理をするので、For Each ... Next ステートメントで処理をしました。
「ので」が2回以上記載されている判定ですが、文字数を比較して行いました。ピンク色の部分です。
元の文章の文字数 - 元の文章から「ので」を削除した後の文字数 > 2
の場合には、「ので」が2回以上記載されていると判定します。
1回記載されているだけなら、上記の計算結果は2(「ので」の文字数)になります。
2回以上記載されているのであれば、上記の計算結果は4以上ということですね。
蛍光ペンでの着色は青字の通りです。
他の色にも変更できます。
▼マクロ
Sub のでので検索()
Dim mySentence As Range
Dim myText As String
Dim cntOriginal As Integer '元の文章の文字数
Dim cntModified As Integer '「ので」を削除した文章の文字数
Dim n As Integer '着色個所
For Each mySentence In ActiveDocument.Sentences
'1文の文字数を数える
myText = mySentence.Text
cntOriginal = Len(myText)
cntModified = Len(Replace(myText, "ので", ""))
'判定と着色
If cntOriginal - cntModified > 2 Then
'明るい緑色で着色
mySentence.HighlightColorIndex = wdBrightGreen
'数を増加
n = n + 1
End If
Next mySentence
If n > 0 Then
MsgBox n & "個所を蛍光ペンで着色しました。"
Else
MsgBox "「のでので」はありません。"
End If
End Sub
▼関連記事
文章がついつい長くなってしまう方へ。チェックできますよ!
まだまだ油断は禁物。チェックに引っかからなくても長文かも?
↧
【Wordマクロ】「ので」が2回以上書かれている文章を蛍光ペンで着色する
↧