「word VBA 文書 文章 すべて Sentences」
という検索キーワードでアクセスがありました。
Word VBAのSentencesコレクションを使って、センテンス(文)ごとに、Word文書内のすべての文字列を取得するにはどのようなコードを探していらしたのでしょうか。
全センテンスを順番に取得するサンプルマクロ
拙著『Excel VBAユーザーのためのWord VBA入門(1)』の「3-8. Sentences経由でRangeを取得する」で紹介している以下のようなWordマクロで、アクティブ文書の全文字列がセンテンスごとに取得できます。
Dim rng As Range
For Each rng in ActiveDocument.Sentences
rng.Select
MsgBox rng.Text
Next
End Sub
上記のWordマクロを実行すると、アクティブ文書内の文が順番に選択され、その文字列がメッセージボックスに表示されます。
サンプルマクロで行っている処理
Word文章を表すDocumentオブジェクトに用意されているSentencesプロパティで取得できる、
Sentencesコレクションを
For Each~Nextで順番に処理しているだけです。
Dim rng As Range For Each rng in ActiveDocument.Sentences
拙著でも解説しているとおり、Sentencesコレクションに含まれる要素オブジェクトはRangeオブジェクトですから、
「For Each rng in ActiveDocument.Sentences」で順番に取得できる要素オブジェクトは、「Dim rng As Range」とWordのRangeオブジェクト型で宣言しています。
For Each~Nextループの中で、RangeオブジェクトのSelectメソッドを使って、
文字列範囲を選択し、
rng.Select
RangeオブジェクトのTextプロパティを使って
取得できる文字列をMsgBox関数の引数に指定して、メッセージボックスに表示しています。
MsgBox rng.Text
- Newer:Excelで倍数判定を行うには-MOD関数
- Older:Booleanの初期値は?
Home » ワードマクロ・Word VBAの使い方 » 文・センテンス » Word VBAのSentencesですべての文を