選択したテキストをループ内で (完了するまで) 反復処理し、各文字を順番に取得しようとしています。
Word 内のオブジェクトは、これを非常に簡単に実行できる Excel とは大きく異なるように見えます。誰でも数行を持っています
- 選択したテキストの長さをキャプチャします。
- それを反復して、選択したテキストの最後の文字に到達するまで、一度に各文字を取得します。
私は Word のコーディングをあまりしないので、ややこしいですが、いくつかの類似点も見られると思います。以下は、あなたが要求したことを実行するコードです。つまり、選択したテキストの文字数を直接ウィンドウに出力し、次に各文字を出力します。
Sub CountWordStuff()
Dim char As Range
With Selection
Debug.Print "Character count: "; .Characters.Count
Debug.Print "Words - kind of: "; .Words.Count; ""
For Each char In Selection.Characters
Debug.Print char.Characters(1)
Next char
End With
End Sub
Words
カウントも入れました。Words
段落の区切りや、おそらく他の項目も含まれているようです。