※ ChatGPTを利用し、要約された質問です(原文:Word2003でドキュメント内の赤色文字の文字数をカウントする方法について)
Word2003でドキュメント内の赤色文字の文字数をカウントする方法
このQ&Aのポイント
Word2003でドキュメント内の赤色文字の文字数をカウントする方法についてマクロを作成していますが、最終段落の段落記号に赤色が設定されていると無限ループしてしまいます。
赤色文字の文字数をカウントするためには、赤色の文字を検索し、その文字数をカウントしていく必要があります。
ただし、上記の方法では最終段落の段落記号に赤色が設定されていると無限ループしてしまうため、最終段落の段落記号に対しては特別な処理を行う必要があります。
Word2003でドキュメント内の赤色文字の文字数をカウントする方法について
Word2003で開いたドキュメント内で赤色文字の文字数をカウントするマクロを作成しています。
以下のようなソースを作成しました。
For Each doc In Documents
'赤色の総文字数を初期化
count_red = 0
Set rng_red = doc.Range(0, 0)
'検索条件を設定(文字の色が赤)
With rng_red.Find
'フォントの色を赤にする
.Font.Color = wdColorRed
'大文字と小文字を区別する
.MatchCase = False
'完全に一致する単語だけを検索する
.MatchWholeWord = False
'半角と全角を区別する
.MatchByte = False
'英単語の異なる活用形も検索する
.MatchAllWordForms = False
'あいまい検索(英)
.MatchSoundsLike = False
'ワイルドカードを使用する
.MatchWildcards = False
'あいまい検索(日)
.MatchFuzzy = False
End With
With rng_red
'検索を実行(Execute)して成功(True)する限り繰り返し
Do While .Find.Execute = True
'検索結果の範囲選択されている文字数を取得
count = .Characters.count
'各ドキュメントの文字数(赤色)をカウントアップ
count_red = count_red + count
'検索結果の直後に移動
.SetRange .End, .End
Loop
End With
next
これだと、ドキュメントの最終段落の段落記号に赤色が設定されていると無限ループしてしまいます。
どなたか、対処方法をご存知の方、教えていただけないでしょうか。
お礼
おかげさまで解決しました。 本当にありがとうございます。