1000文字ごとに強調表示(Microsoft Word)
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は、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(7871)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: