Quantcast
Channel: みんなのワードマクロ
Viewing all articles
Browse latest Browse all 496

【Wordマクロ】「ので」が2回以上書かれている文章を蛍光ペンで着色する

$
0
0

昨日のセミナー(翻訳チェックソフト「色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




▼関連記事

文章がついつい長くなってしまう方へ。チェックできますよ!

まだまだ油断は禁物。チェックに引っかからなくても長文かも?





Viewing all articles
Browse latest Browse all 496

Trending Articles