Одним из преимуществ полей является то, что вы можете вставлять в документ динамическую информацию. Когда поле обновляется, оно заменяется любой информацией, актуальной относительно используемого поля. Например, вы можете использовать поле 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», которую вы определили. Эта закладка указывает место, где вы хотите, чтобы количество слов во втором разделе документа. Следующий макрос определит количество слов для указанного раздела, а затем вставит текст в место закладки.

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 — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (519) применим к Microsoft Word 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Word (Word 2007 и позже) здесь:

link: / wordribbon-Word_Count_for_a_Section [Количество слов в разделе].