Подсчет символов в текстовых полях (Microsoft Word)
Если у вас есть документ, который включает текст в различных текстовых полях, вы должны понимать, что при подсчете слов Word не включает слова из текстовых полей в возвращаемое количество слов. Если вы хотите знать только количество слов в текстовом поле, есть способ обойти это:
Просто выберите текстовое поле, слова которого вы хотите подсчитать, прежде чем запускать функцию подсчета слов. Затем Word послушно считает только слова в текстовом поле, игнорируя остальную часть документа.
Однако есть один момент, когда метод выбора до подсчета не работает. Если у вас есть несколько текстовых полей, содержащих слова, и эти текстовые поля сгруппированы, функция подсчета слов не распознает их как «счетные», если вы выберете группу. Другими словами, чтобы подсчитать символы в текстовых полях, составляющих группу, вы должны сначала разгруппировать группу, а затем подсчитать каждое текстовое поле.
Очевидно, делать это снова и снова может утомительно. Один из способов обойти это — использовать макрос, который выполняет те же действия за вас.
Следующий макрос TextBoxCount проходит через все фигуры в вашем документе. Если они сгруппированы, они автоматически разгруппируются. Затем он выполняет подсчет слов для каждого текстового поля и возвращает диалоговое окно, в котором указывается количество слов и символов в текстовых полях (вместе) и количество слов и символов во всем документе, включая текстовые поля.
Sub TextBoxCount() Dim lngTBWords As Long Dim lngTBChars As Long Dim lngDocWords As Long Dim lngDocChars As Long Dim shpTemp As Shape Dim wcTemp As Dialog Dim bDone As Boolean Application.ScreenUpdating = False Do bDone = True For Each shpTemp In ActiveDocument.Shapes If shpTemp.Type = msoGroup Then shpTemp.Ungroup bDone = False End If Next shpTemp Loop Until bDone 'Get count in main document Selection.HomeKey Unit:=wdStory Set wcTemp = Dialogs(wdDialogToolsWordCount) wcTemp.Update wcTemp.Execute lngDocWords = wcTemp.Words lngDocChars = wcTemp.Characters 'Step through shapes and add counts lngTBWords = 0 lngTBChars = 0 For Each shpTemp In ActiveDocument.Shapes shpTemp.Select wcTemp.Execute lngTBWords = lngTBWords + wcTemp.Words lngTBChars = lngTBChars + wcTemp.Characters Next shpTemp lngDocWords = lngDocWords + lngTBWords lngDocChars = lngDocChars + lngTBChars Application.ScreenUpdating = True MsgBox Str(ActiveDocument.Shapes.Count) _ & " text boxes found with" & vbCr _ & Str(lngTBWords) & " word(s) and" & vbCr _ & Str(lngTBChars) & " characters" & vbCr & vbCr _ & " In the total document there are" & vbCr _ & Str(lngDocWords) & " word(s) and" & vbCr _ & Str(lngDocChars) & " characters" End Sub
Помните, что этот макрос разгруппировывает любую ранее выполненную группировку в документе. По этой причине вы можете захотеть запустить макрос после сохранения документа, а затем удалить документ (перезагрузить его с диска) после получения вашего счета.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (1839) применим к Microsoft Word 97, 2000, 2002 и 2003.