Подсчет символов в текстовых полях

Если у вас есть документ, который включает текст в различных текстовых полях, вы должны понимать, что при подсчете слов 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 True Boolean Application.ScreenUpdating = False Do bDating = False Do bDating  shpTemp в ActiveDocument.Shapes Если shpTemp.Type = msoGroup, то shpTemp.Ungroup bDone = False End If Next shpTemp Loop Пока bDone 'Получить счетчик в основном документе Selection.HomeKey Unit: = wdStory Set wcTemp = Dialogs (wdDialogTools)  Выполнить lngDocWords = wcTemp.Words lngDocChars = wcTemp.Characters 'Пошагово переходить по фигурам и добавлять счетчики lngTBWords = 0 lngTBChars = 0 Для каждого shpTemp в ActiveDocument.Shapes shpTemp.Select wcTemp.ExecutengTempWords.  ars = lngTBChars + wcTemp.Characters След. shpTemp lngDocWords = lngDocWords + lngTBWords lngDocChars = lngDocChars + lngTBChars Application.ScreenUpdating = True MsgBox Str (ActiveDocument.Shapes.Countrng с полями l & "v  "слово (а) и" & vbCr _ & Str (lngTBChars) & "символы" & vbCr & vbCr _ & "В общем документе есть" & vbCr _ & Str (lngDocWords) & "слово (и) и" &  vbCr _ & Str (lngDocChars) & "characters" End Sub 

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

Оцените статью
Frestage.ru
Добавить комментарий