Hakanには、Word文書の文字(スペースなし)をカウントし、1000文字ごとに強調表示するマクロが必要です。このようなマクロの作成はかなり簡単です。ドキュメント内のすべての文字を順番に調べて、スペースではない文字だけを数える必要があります。以下は、まさにそれを実行する単純な小さなマクロです。

Sub CountThousands1()

Dim J As Long     Dim X As Integer

X = 0     With ActiveDocument         For J = 1 To .Characters.Count             If .Characters(J) <> " " Then X = X + 1             If X = 1000 Then                 .Characters(J).Select                 Selection.Range.HighlightColorIndex = wdYellow                 X = 0                 Beep             End If         Next J     End With End Sub

マクロは十分に単純です。ドキュメント内のすべての個々の文字を含むCharactersコレクションを調べます。マクロの問題は、マクロが遅い、つまり非常に遅いことです。 Wordは、この方法で個々の文字を調べるのにそれほど効率的ではありません。 (Charactersコレクションのメンバーを参照するたびに、Wordはドキュメントの最初からすべての文字をもう一度調べる必要があるようです。)

別のアプローチは、単にドキュメントをステップスルーし、スペース以外の文字が1,000文字になるまで選択範囲を拡大することです。

Sub CountThousands2()

Dim X As Integer     Dim sRaw As String     Dim sProc As String

Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend     While Len(Selection) = 1000         sRaw = Selection         sProc = Replace(sRaw, " ", "")

X = 1000 - Len(sProc)

While X > 0             Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend             sRaw = Selection             sProc = Replace(sRaw, " ", "")

X = 1000 - Len(sProc)

Wend         Selection.Collapse Direction:=wdCollapseEnd         Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend         Selection.Range.HighlightColorIndex = wdYellow         Selection.Collapse Direction:=wdCollapseEnd         Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend     Wend End Sub

このマクロは、ドキュメントの先頭にある挿入ポイントから開始します。次に、マクロは1000文字を取得し、その選択を変数に割り当て(sRaw)、すべてのスペースが削除された変数を作成し(sProc)、sProcの長さを計算します。 1,000未満の場合、選択範囲は短い文字数だけ拡張され、プロセスが繰り返されます。選択範囲にスペース以外の文字が1,000文字含まれている場合、ハイライトが設定され、マクロは次の文字ブロックに進みます。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(7870)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ: