Кейт нужно подсчитать количество слов только для верхних и нижних колонтитулов документа, и она не знает, как это сделать.

Нет автоматического способа сделать это, но вы можете разработать макрос, который вычислит количество. VBA позволяет легко перемещаться по заголовкам в каждом разделе документа, а затем вы можете определить, сколько слов в каждом заголовке. Один из подходов — использовать макрос, подобный следующему:

Sub CntHeaderWords()

Dim s As Section     Dim h As HeaderFooter     Dim sRaw As String     Dim Cnt As Long     Dim J As Integer

Cnt = 0     For Each s In ActiveDocument.Sections         For Each h In s.Headers             For J = 1 To h.Range.Words.Count                 sRaw = h.Range.Words(J)

sRaw = Trim(sRaw)

If sRaw = vbCrLf Then sRaw = ""

If sRaw = vbCr Then sRaw = ""

If sRaw = vbLf Then sRaw = ""

If Len(sRaw) > 0 Then Cnt = Cnt + 1             Next J         Next h     Next s

MsgBox Cnt & " words in headers"

End Sub

Когда вы запускаете этот макрос, он проходит по каждому разделу документа, а затем по каждому заголовку в этом разделе. Количество слов определяется для каждого заголовка и добавляется к переменной Cnt. Когда макрос завершен, он отображает количество слов для заголовков документа.

В этом макросе есть несколько интересных моментов.

Во-первых, поскольку вы можете определить свойство Count для коллекции Words для каждого заголовка, вы можете подумать, что можете просто сложить все эти значения вместе, чтобы определить общее количество слов. Проблема в том, что даже если для раздела нет заголовка, Word возвращает количество слов 1 для «подразумеваемого» заголовка. Вот почему макрос фактически проверяет каждое слово в заголовке, и если это не что иное, как возврат каретки или перевод строки, то оно не включается в подсчет.

Также следует отметить, что если в заголовке есть знаки препинания, каждый знак препинания считается словом. Например, если у вас есть заголовок «Все права защищены», Word считает, что это три слова. Если в заголовке указано «Все права защищены». (с точкой в ​​конце), Word считает, что это четыре слова. В результате, если вы думаете, что в ваших заголовках могут быть знаки препинания, то вы можете изменить код макроса, чтобы знаки препинания не учитывались.

Этот макрос возвращает только количество слов для заголовков в документе. Если вместо этого вы хотите, чтобы количество слов было как для верхних, так и для нижних колонтитулов, вы можете настроить макрос следующим образом:

Sub CntHFWords()

Dim s As Section     Dim h As HeaderFooter     Dim f As HeaderFooter     Dim sRaw As String     Dim HdCnt As Long     Dim FtCnt As Long     Dim J As Integer

HdCnt = 0     FtCnt = 0     For Each s In ActiveDocument.Sections         For Each h In s.Headers             For J = 1 To h.Range.Words.Count                 sRaw = h.Range.Words(J)

sRaw = Trim(sRaw)

If sRaw = vbCrLf Then sRaw = ""

If sRaw = vbCr Then sRaw = ""

If sRaw = vbLf Then sRaw = ""

If Len(sRaw) > 0 Then HdCnt = HdCnt + 1             Next J         Next h

For Each f In s.Footers             For J = 1 To f.Range.Words.Count                 sRaw = f.Range.Words(J)

sRaw = Trim(sRaw)

If sRaw = vbCrLf Then sRaw = ""

If sRaw = vbCr Then sRaw = ""

If sRaw = vbLf Then sRaw = ""

If Len(sRaw) > 0 Then FtCnt = FtCnt + 1             Next J         Next f     Next s

sRaw = "Header words: " & HdCnt & vbCrLf     sRaw = sRaw & "Footer words: " & FtCnt & vbCrLf     sRaw = sRaw & "Total words: " & HdCnt + FtCnt     MsgBox sRaw End Sub

В этой версии макроса к каждому нижнему колонтитулу применяется тот же метод подсчета, что и к каждому заголовку, отображая индивидуальный и общий счетчики в конце макроса.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (10285) относится к Microsoft Word 2007, 2010 и 2013.