Статьи из блога
Статьи из блога
Подсчет количества некоторых слов в документе
Рубрика: Макросы
Метки: макросы | поиск и замена | статистика
Понедельник, 15 июня 2009 г.
Просмотров: 4400
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | поиск и замена | статистика
Понедельник, 15 июня 2009 г.
Просмотров: 4400
Подписаться на комментарии по RSS
Версия для печати
Если вам нужно определить количество вхождений в документ некоторого слова, то здесь может помочь следующий макрос (навеяно заметкой Грега Макси ).
Вы выделяете некое слово и запускаете макрос, который после подсчета выдает сообщение о количестве найденных слов:

Sub CountWords()
'макрос подсчета количества определенных слов в документе
'для подсчета количества вхождений конкретного слова, это слово должно быть выделено
Dim rng As Range
Dim sWord As String
Dim i As Long
Set rng = ActiveDocument.Range
Application.ScreenUpdating = False
If Selection.Type = wdSelectionIP Then
MsgBox "Слово не выделено", vbExclamation
Else
'удаляем знак абзаца справа от слова
If Right(Selection.Text, 1) = Chr(13) Then
Selection.MoveLeft wdCharacter, 1, wdExtend
End If
sWord = Trim(Selection.Text) 'Убираем прообелы вокруг слова и запоминаем
Selection.Collapse wdCollapseStart
With rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = sWord
.Forward = True
.MatchWholeWord = True
.MatchWildcards = False
.Wrap = wdFindStop
Do While .Execute
i = i + 1
Loop
End With
Select Case i
Case 2 To 4
MsgBox "Слово " & Chr(171) & sWord & Chr(187) & " встречается в документе " & i & " раза", _
vbInformation, "Подсчет слов"
Case 1
MsgBox "Слово " & Chr(171) & sWord & Chr(187) & " встречается в документе " & i & " раз", _
vbInformation, "Подсчет слов"
Case Else
MsgBox "Слово " & Chr(171) & sWord & Chr(187) & " встречается в документе " & i & " раз", _
vbInformation, "Подсчет слов"
End Select
rng.Find.Text = ""
End If
Application.ScreenUpdating = True
End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:

Поиск
Рубрики
Подписка
Читают
Обсуждают
Форум
страницы
сайты
статистика
Комментариев: 5
Ха!
Есть вариант получше - и без макроса!
Ctrl+F, птичку на "Выделить все фрагменты, найденные в", выбрать Основной документ, и кнопку Найти все.
В итоге получится не только количество элементов, и _все_ они будут выделены!
Причем не обязательно отдельные слова, но и их фрагменты
Luna, безусловно! Спасибо.
А в Worde 2007 есть "Выделить все фрагменты, найденные в"?
Есть. Там отдельная кнопка - "Выделение при чтении" с двумя командами: Выделить все и Снять выделение.
Luna, макрос для того и создан чтобы не делать миллион кликов.