Home » ワードマクロ・Word VBAの使い方 » Word.Rangeオブジェクト » Word VBAで単語数をカウントする-Range.ComputeStatistics(wdStatisticWords)

Word VBAで単語数をカウントする-Range.ComputeStatistics(wdStatisticWords)

対象:Word2007, Word2010, Word2013

「ワード vba 単語の数を返す」
「vba word 単語数 取得 selection.information」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

単語数をカウントするWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索です。

「vba word 単語数 取得 selection.information」
という検索をなさった方は、SelectionオブジェクトのInformationプロパティで、単語数も取得できると考えたのでしょう。

単語数をカウントするWordマクロ

残念ながら単語数は、Selection.Informationプロパティでは取得できません。

[スポンサードリンク]

アクティブ文書の単語数を取得するサンプルマクロ

以下のようなマクロにすると、アクティブな文書の単語数を取得することができます。

Sub アクティブ文書の単語数をカウントする()

 MsgBox ActiveDocument. _
  Range.ComputeStatistics(wdStatisticWords)

End Sub

単語数を取得するには、RangeオブジェクトのComputeStatisticsメソッドの

単語数をカウントするWordマクロ

引数に定数・wdStatisticWordsを指定します。

単語数をカウントするWordマクロ

どの範囲の単語数をカウントするのかは、Rangeオブジェクトで指定します。

上記のマクロの場合は、ActiveDocumentプロパティでアクティブなDocumentオブジェクトを取得して、

単語数をカウントするWordマクロ

文書全体を表すRangeオブジェクトを、Rangeメソッドで取得しています。

単語数をカウントするWordマクロ

実は、アクティブな文書の単語数をカウントするのならば、Rangeオブジェクトを使わない、
 ActiveDocument.ComputeStatistics(wdStatisticWords)
というオブジェクト式でもOKなのですが、Rangeオブジェクトを使うほうが汎用性が高まりますので、ここでは
 ActiveDocument.Range.ComputeStatistics(wdStatisticWords)
をご紹介しました。

選択範囲の単語数を取得するサンプルマクロ

「vba word 単語数 取得 selection.information」
という検索をなさった方は、選択範囲の単語数を取得したかったはずです。

選択範囲の単語数を取得するには、以下のようなマクロです。

Sub 選択範囲の単語数をカウントする()

 MsgBox Selection _
  .Range.ComputeStatistics(wdStatisticWords)

End Sub

Selectionプロパティで選択範囲を表すSelectionオブジェクトを取得して、

単語数をカウントするWordマクロ

Selectionオブジェクトの、RangeプロパティでRangeオブジェクトを取得して、

単語数をカウントするWordマクロ

先の文書全体の単語数カウントと同様、ComputeStatisticsメソッドの引数に、定数・wdStatisticsWordsを指定しています。

アクティブページの単語数を取得するサンプルマクロ

アクティブなページの単語数を取得したいという要望もありそうです。

以下のようなマクロにすれば、アクティブなページの単語数を取得できます。

Sub アクティブページの単語数をカウントする()

 MsgBox ActiveDocument.Bookmarks("\Page") _
  .Range.ComputeStatistics(wdStatisticWords)

End Sub

Bookmarksプロパティの引数に「\Page」を指定するとアクティブなページが取得できるので、そのRangeオブジェクトのComputeStatisticsメソッドの引数に、定数・wdStatisticsWordsを指定しています。

いずれのマクロも、RangeオブジェクトのComputeStatisticsメソッドに、定数・wdStatisticWordsを指定する部分は同じで、どの範囲かを表すRangeオブジェクトを指定する部分が違うだけです。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Word.Rangeオブジェクト » Word VBAで単語数をカウントする-Range.ComputeStatistics(wdStatisticWords)

「Word.Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.