Статьи из блога
Поиск слов с прописными буквами
Роман интересуется:
Как в документе найти все слова, написанные прописными буквами? Причем, можно ли результаты поиска вывести вместе, или ворд будет переходить от слова к слову?
Можно воспользоваться следующим макросом, который мне помогли реализовать специалисты VBA с форума microsoft.public.word.vba.general.
Этот макрос позволяет найти в документе все слова, написанные прописными буквами, скопировать их в конец документа, отсортировать по алфавиту и удалить повторяющиеся слова. При этом, не затрагиваются односимвольные слова, типа О, И и так далее.
Обратите внимание, что макрос писал не я, по моей просьбе его составили специалисты с указанного выше форума. Тем не менее, я добавил в текст макроса свои поясняющие комментарии (для себя и тех, кому это может быть интересно в плане изучения опыта).
Sub UcaseList()
'Поиск в тексте слов с прописными буквами, копирование их в конец документа, сортировка и удаление повторяющихся
'Помощь от Jean-Guy Marcil и Graham Mayor
'http://groups.google.ru/group/microsoft.public.word.vba.general/
Dim rngDoc As Word.Range
Dim wu As Word.Range
Dim lngDocEnd As Long
Set rngDoc = ActiveDocument.Range
lngDocEnd = rngDoc.End
With ActiveDocument
Selection.EndKey Unit:=wdStory 'переходим в конец документа
Selection.TypeParagraph 'вставляем параграф
.Bookmarks.Add Range:=Selection.Range, Name:="ListStart" 'вставляем закладку
'для каждого слова проверяем его регистр и если есть слова с прописными буквами, добавляем их в конец документа
For Each wu In rngDoc.Words
If wu.Case = wdUpperCase Then
.Range.InsertAfter vbCrLf & wu.Text
rngDoc.End = lngDocEnd
End If
Next wu
.Bookmarks("ListStart").Select 'выбираем закладку, выделяем все слова, что идут ниже ее, и сортируем их по алфавиту
With Selection
.EndKey Unit:=wdStory, Extend:=wdExtend
.Sort , FieldNumber:="Paragraphs", _
SortFieldType:=wdSortFieldAlphanumeric, _
SortOrder:=wdSortOrderAscending
'с отсортированными словами
With .Find
.ClearFormatting
.Replacement.ClearFormatting
'удаляем пробелы после слов
.Text = "[ ](^13)"
.Replacement.Text = "\1"
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
'удаляем лишние концы абзацев
.Text = "(*^13)@"
.Replacement.Text = "\1"
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
'ищем повторяющиеся слова и удаляем их
.Text = "([!A-Z-А-ЯЁ])[A-Z-А-ЯЁ]^13"
.Replacement.Text = "\1"
.Execute Replace:=wdReplaceAll
End With
End With
End With
End Sub
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Рубрика: Вопрос-Ответ, Макросы
Метки: макросы | поиск и замена | регистр | форматирование
Просмотров: 25324
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | поиск и замена | регистр | форматирование
Просмотров: 25324
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Абзац с цветным фоном
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Белый текст на синем фоне в Word 2007
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод повторяющихся фрагментов текста в Word 2007
- Ввод часто повторяющихся фрагментов текста
- Вертикальное выравнивание текста
- Возможно ли запретить копирование текста из документа Word?
- Вопрос о работе с графиками (диаграммами) в Word
- Вопросы и ответы о гиперссылках в редакторе Word

Форум
Читают
Обсуждают
страницы
сайты
статистика
Комментариев: 4
Огромное спасибо за этот макрос
спасает при разработке больших документов !!!
А где же удаление однобуквенных слов?
Макрос забавный. Спасибо за идею.
Добрый день. Огромное спасибо за данный макрос, однако, у меня есть вопрос, что нужно изменить в этом макросе, чтобы он мог искать слова написанные курсивным шрифтом?
не работает. Сообщает "Найти" содержит неверный шаблон поиска