Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2010, 06:53   #1
Heatrv
Новичок
Джуниор
 
Регистрация: 01.09.2010
Сообщений: 1
По умолчанию Подсчет числа слов

Все добрый день.

Помогите, пожалуйста, решить задачу.

Мне нужно составить макрос, который бы подсчитывал число упоминаемых слов в документе, т.е. есть список из 166 слов и надо подсчитать, сколько раз каждое из них упомянуто в тексте, с выводом, к примеру, в конце текста подписи: Брянск – 140 упоминаний, Красноярск – 17 упоминаний и т.д.

Пытался адаптировать под свои цели этот макрос, но ничего толкового не вышло, а в том виде, в котором он работает изначально, все как-то жутко смотрится и долго работает.
Heatrv вне форума Ответить с цитированием
Старый 22.09.2010, 12:31   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Вам наверно пригодится это: http://programmersforum.ru/showthread.php?p=400381
Sasha_Smirnov вне форума Ответить с цитированием
Старый 30.09.2010, 06:45   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Подход

Разбить текст на N абзацев (где N — количество слов в нём) и отсортировать:
Код:
Selection.Sort
(Word такую функцию предоставлят и в виде кнопки).

Полученный "словник" обсчитать легко. Даже и вручную. Пример — ваша тема:
140
166
17
а
адаптировать
Брянск
бы
в
в
в
в
в
виде,
все
Все
выводом,
вышло,
день.
добрый
документе,
долго
есть
жутко
задачу.
и
и
и
из
из
изначально,
к
каждое
как-то
конце
котором
который
Красноярск
макрос,
макрос,
Мне
надо
не
них
ничего
но
нужно
он
под
подписи:
Подсчет
подсчитать,
подсчитывал
пожалуйста,
Помогите,
примеру,
Пытался
работает
работает.
раз
решить
с
свои
сколько
слов
слов
слов
Sasha_Smirnov вне форума Ответить с цитированием
Старый 30.09.2010, 11:31   #4
forumWord
Пользователь
 
Регистрация: 23.09.2010
Сообщений: 65
По умолчанию

Heatrv
тот пример, ссылку на которую вы давали, нельзя использовать, я так думаю. Я подробно его не рассматривал, но увидел, что там есть выражение
Код:
For Each aWord In actDoc.Words
это означает просмотр всех слов в документе. Следовательно макрос будет работать очень медленно.

Вот правильное решение:
Код:
Sub Макрос1()
Dim x As String
Dim y As Long
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
x = InputBox("Введите искомое слово")
With ActiveDocument.Range.Find
    .ClearFormatting
    .Text = x
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    While .Execute
        y = y + 1
    Wend
End With
Selection.InsertAfter x & " - " & y
Selection.MoveRight
End Sub
В данном случае не просматриваются все слова, а происходит поиск нужного слова.

Последний раз редактировалось forumWord; 30.09.2010 в 11:37.
forumWord вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет количества слов на листе bukarenko Microsoft Office Excel 4 01.04.2010 12:30
Подсчет числа одинаковых слов в нескольких категориях. Hagen83 Microsoft Office Excel 2 13.03.2010 09:45
Подсчет слов(Си) Bl@st Помощь студентам 18 21.12.2009 23:45
Pascal. На подсчет слов и на массив Lot Помощь студентам 2 24.12.2008 18:35
Подсчет слов Stanislav Общие вопросы Delphi 11 28.08.2008 10:37