Статьи из блога
Поиск слов с прописными буквами
Роман интересуется:
Как в документе найти все слова, написанные прописными буквами? Причем, можно ли результаты поиска вывести вместе, или ворд будет переходить от слова к слову?
Можно воспользоваться следующим макросом, который мне помогли реализовать специалисты 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
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Рубрика: Вопрос-Ответ, Макросы
Метки: макросы | поиск и замена | регистр | форматирование
Просмотров: 24828
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | поиск и замена | регистр | форматирование
Просмотров: 24828
Подписаться на комментарии по 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
Огромное спасибо за этот макрос
спасает при разработке больших документов !!!
А где же удаление однобуквенных слов?
Макрос забавный. Спасибо за идею.
Добрый день. Огромное спасибо за данный макрос, однако, у меня есть вопрос, что нужно изменить в этом макросе, чтобы он мог искать слова написанные курсивным шрифтом?
не работает. Сообщает "Найти" содержит неверный шаблон поиска