フィールドの利点の1つは、ドキュメント内に動的な情報を挿入できることです。フィールドが更新されると、使用中のフィールドに関連する現在の情報に置き換えられます。たとえば、NumWordsフィールドを使用して、ドキュメント内の単語数を挿入できます。フィールドが更新されると、そのフィールドは置き換えられますが、ドキュメント内には多くの単語が含まれています。

セクション内の単語数を調べて、それをドキュメントに動的に配置したい場合は、運が悪いです。この情報を返すフィールドはありません。セクション内のテキストを選択してからワードカウントツールを選択することで手動で見つけることができますが、それは明らかに、ドキュメントに挿入して自動的に更新できる値を持ちたいという欲求を満たしていません。

これは、必要な単語数を取得するためにマクロに依存する必要があることを意味します。ドキュメントの各セクションの単語数を知りたいだけの場合は、次のマクロが役立ちます。

Sub WordCount()

Dim NumSec As Integer     Dim S As Integer     Dim Summary As String

NumSec = ActiveDocument.Sections.Count     Summary = "Word Count" & vbCrLf

For S = 1 To NumSec         Summary = Summary & "Section " & S & ": " _           & ActiveDocument.Sections(S).Range.Words.Count _           & vbCrLf     Next

Summary = Summary & "Document: " & _       ActiveDocument.Range.Words.Count     MsgBox Summary End Sub

これは単に各セクションをステップスルーし、そのセクションの単語数を決定し、メッセージボックスに要約情報を表示します。

これは、ドキュメントに情報を動的に挿入する方法を提供しませんが、単一のセクションの単語数を見つける方法を示しています。

テクニックのバリエーションを使用すると、ドキュメント内のブックマークの場所に特定のセクションの単語数を自動的に挿入できます。定義した「WordCount」というブックマークがあるとします。このブックマークは、ドキュメントの2番目のセクションで単語数を指定する場所を指定します。次のマクロは、指定されたセクションの単語数を決定し、ブックマークの場所にテキストを挿入します。

Sub InsertWordCount()

Dim oRange As Word.Range     Dim sBookmarkName As String     Dim sTemp As String

sBookmarkName = "WordCount"

With ActiveDocument         sTemp = Format(.Sections(2).Range.Words.Count, "0")

Set oRange = .Bookmarks(sBookmarkName).Range         oRange.Delete         oRange.InsertAfter Text:=sTemp         .Bookmarks.Add Name:=sBookmarkName, Range:=oRange     End With End Sub

マクロは、ドキュメントを開いたり、保存したり、印刷したりするときに実行されるマクロなど、他のマクロから簡単に呼び出すことができます。そうすれば、フィールドが自動的に更新される通常の時間に単語数が更新されます。

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

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