アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

これだと、ドキュメントの最終段落の段落記号に赤色が設定されていると無限ループしてしまいます。
どなたか、対処方法をご存知の方、教えていただけないでしょうか。

A 回答 (1件)

.SetRange .End, .End



で検索開始位置が初期化されてしまうのがいけないようですね。

.SetRange .End, .End

を削除、もしくは、コメントアウトすると、無限ループにならないようです。
    • good
    • 0
この回答へのお礼

おかげさまで解決しました。
本当にありがとうございます。

お礼日時:2009/12/13 22:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!