Гид по технологиям

Автоматизация поиска и замены в Microsoft Word с помощью макросов

8 min read Office automation Обновлено 01 Jan 2026
Автоматизация поиска и замены в Word
Автоматизация поиска и замены в Word

Робот печатает на клавиатуре

В этой инструкции пошагово показано, как записать макрос для автоматизации функции «Найти и заменить» в Microsoft Word, как посмотреть и отредактировать код в редакторе Visual Basic и как улучшить макрос, чтобы он не оставлял служебные значения в диалоговом окне. Подойдёт для пользователей Windows и macOS, которые работают с большим количеством однотипных документов.

Что такое макрос и зачем он нужен

Макрос — это небольшая подпрограмма (subroutine) на VBA (Visual Basic for Applications), которая повторяет последовательность действий в приложениях Office. Простая аналогия: макрос — это «запись макроса» в спортивной тренировке: вы повторяете движения, потом воспроизводите их по записи.

Коротко:

  • Запись — Word записывает ваши действия и генерирует VBA-код.
  • Запуск — вы выполняете тот же набор действий автоматически.
  • Редактирование — при желании меняете код в редакторе Visual Basic для большего контроля.

Важно: макросы работают только в настольной версии Word (не в Word Online). Также макросы могут быть отключены политиками безопасности — об этом ниже.

Быстрая схема — что мы сделаем

  1. Включим вкладку «Разработчик».
  2. Запишем макрос, выполняющий «Найти и заменить».
  3. Запустим макрос в других документах.
  4. Откроем Visual Basic и посмотрим код.
  5. Создадим вспомогательный макрос, который очищает поля «Найти» и «Заменить».
  6. Соединим макросы и добавим рекомендации по безопасности и тестированию.

Включение вкладки Разработчик

  1. Откройте Word.
  2. Перейдите в Файл > Параметры > Настроить ленту.
  3. Справа в разделе Основные вкладки установите флажок Разработчик.
  4. Нажмите OK.

Настройка ленты — включение вкладки Разработчик

Важно: на macOS путь похож, но расположение настроек в системных меню Office может отличаться.

Запись макроса: практический пример

Ситуация: вы — президент общества по сохранению антикварных зубных протезов (Society for the Preservation of Antique Dental Appliances), и правление решило переименовать организацию в Dental Antiques Preservation League. Нужно быстро обновить десятки документов.

Пошаговая запись макроса:

  1. Откройте пустой документ или один из тех, которые нужно править.
  2. В панели Разработчик нажмите Запись макроса.
  3. Введите имя, например ChangeSocietyName. Советы по именованию: без пробелов и спецсимволов; первый символ — буква; можно использовать цифры.
  4. При желании назначьте кнопку или сочетание клавиш (это удобно для запуска).
  5. Нажмите OK — запись началась.
  6. Нажмите Ctrl + H (Cmd + Shift + H на macOS) для открытия диалога Найти и заменить.
  7. В поле Найти вставьте: Society for the Preservation of Antique Dental Appliances
  8. В поле Заменить на вставьте: Dental Antiques Preservation League
  9. Нажмите Заменить все.
  10. В панели Разработчик обязательно нажмите Остановить запись — если этого не сделать, в макрос попадут все дальнейшие действия.

Окно задания имени и свойств макроса в Word

Диалог Найти и заменить при записи макроса

После записи откройте любой документ с упоминанием старого названия, затем Разработчик > Макросы и дважды щёлкните ChangeSocietyName — Word выполнит сохранённую операцию.

Список макросов в Word с выделенным ChangeSocietyName

Совет: если во время записи вам нужно выполнить действие, которое не должно быть зафиксировано (например, вставить текст из буфера обмена), используйте Разработчик > Пауза записи, выполните вставку, затем Разработчик > Продолжить запись.

Просмотр и редактирование кода в редакторе Visual Basic

Чтобы посмотреть код:

  1. Разработчик > Макросы.
  2. Выберите макрос и нажмите Редактировать.

Откроется редактор Visual Basic. Сосредоточьтесь на основном окне с кодом — остальные панели можно игнорировать.

Редактор Visual Basic с кодом макроса

Ниже — код, который Word обычно записывает автоматически. Я привожу его в рабочем виде и с русскими комментариями, чтобы было проще понять каждую часть.

Sub ChangeSocietyName()
' Макрос ChangeSocietyName
' Переименовать Society for the Preservation of Antique Dental Appliances
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "Society for the Preservation of Antique Dental Appliances"
        .Replacement.Text = "Dental Antiques Preservation League"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Краткое объяснение:

  • Sub … End Sub — определение подпрограммы (subroutine).
  • Строки, начинающиеся с апострофа (‘) — комментарии, их VBA игнорирует.
  • Selection.Find отвечает за параметры поиска; .Text и .Replacement.Text — строки для поиска и замены.
  • Selection.Find.Execute Replace:=wdReplaceAll эквивалентна нажатию «Заменить все».

Улучшение макроса: очистка полей Найти и Заменить

После выполнения макроса Word сохраняет последние значения в диалоге «Найти и заменить». Иногда это мешает — лучше очищать поля. Сделаем отдельный макрос ClearFindReplace и вызовем его из основного.

Шаги:

  1. В редакторе Visual Basic скопируйте весь Sub … End Sub и вставьте его ниже, чтобы дублировать макрос.
  2. Переименуйте копию в ClearFindReplace.
  3. Внутри замените .Text и .Replacement.Text на пустые строки “” (оставьте кавычки).
  4. Сохраните.

Редактор Visual Basic с дублированным макросом ClearFindReplace

Sub ClearFindReplace()
' Макрос ClearFindReplace
' Очистить поля диалога Найти и Заменить
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Теперь вернитесь к основному макросу ChangeSocietyName и в конце, перед End Sub, добавьте строку ClearFindReplace — это вызовет второй макрос сразу после основной замены:

Sub ChangeSocietyName()
' Макрос ChangeSocietyName
' Переименовать Society for the Preservation of Antique Dental Appliances
'
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "Society for the Preservation of Antique Dental Appliances"
        .Replacement.Text = "Dental Antiques Preservation League"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    ClearFindReplace
End Sub

Преимущество: в результате диалог Найти и заменить будет чистым, что снижает риск случайных замен при следующем запуске макроса.

Частые модификации и альтернативы

  • Использование подстановочных знаков (wildcards): вместо точной строки можно использовать шаблоны для замены вариативных форм записи.
  • Ограничение области поиска: по выделению, по разделу или по конкретному диапазону вместо Selection.
  • Массовая обработка файлов: запуск макроса в цикле по файлам в папке (требует расширения кода — FileSystemObject или Dir).
  • Использование шаблонов (dotm): поместите макрос в шаблон Normal.dotm или в собственный dotm, чтобы он был доступен во всех документах.

Пример: если нужно применять макрос ко всем .docx в папке, понадобится дополнительный код, который открывает файлы по очереди, выполняет макрос и сохраняет изменения.

Риски, безопасность и рекомендации

Важно понимать риски: макросы могут содержать вредоносный код. Политики безопасности Office по умолчанию блокируют неподписанные макросы.

Рекомендации по безопасности и развёртыванию:

  • Включайте макросы только из надёжных источников.
  • Используйте цифровую подпись для корпоративных макросов (подписывайте сертификатом организации).
  • Размещайте часто используемые макросы в доверенных каталогах (Trusted Locations) через Параметры — Центр управления безопасностью.
  • Администраторы могут управлять политиками через групповые политики (GPO) в доменной сети.
  • Тестируйте макросы на копии документов, прежде чем запускать их на оригиналах.

Риск-матрица (качественная):

  • Нарушение данных: вероятность низкая при тестировании, эффект высокий — смягчение: резервные копии, тесты.
  • Выполнение вредоносного кода: вероятность средняя при загрузке макросов из Интернета — смягчение: цифровая подпись, политики.
  • Неполные замены (ложные срабатывания): вероятность средняя — смягчение: использовать опцию MatchWholeWord and тестовые проверки.

Совместимость и важные замечания

  • Настольный Word (Windows): полная поддержка VBA и макросов.
  • Word для Mac: поддержка VBA есть, но иногда интерфейс и поведение могут отличаться.
  • Word Online (в браузере): макросы не выполняются.
  • Мобильные версии Word: макросы недоступны.

Если ваше окружение смешанное (Windows + Mac + Office 365 в облаке), убедитесь, что пользователи запускают макросы в поддерживаемой среде.

Роль‑ориентированные чек-листы

Автор макроса:

  • Создать и протестировать макрос на копии документа.
  • Убедиться, что макрос не меняет лишний текст.
  • Описать назначение макроса и сохранить версию.

Администратор:

  • Настроить доверенные каталоги и политики безопасности.
  • Подписать корпоративные макросы.
  • Обеспечить резервное копирование шаблонов.

Ревьювер / Контент‑менеджер:

  • Проверить семантику и корректность замен.
  • Проверить случаи, когда часть названия не должна заменяться (например, цитаты).

SOP — быстрая процедура для массовой правки документов

  1. Скопировать исходную папку с документами в тестовую папку.
  2. Запустить макрос на одном тестовом документе.
  3. Проверить результаты вручную в 5–10 выборках.
  4. Если всё ОК — запустить макрос в тестовой папке для всех файлов.
  5. Провести контрольную проверку и переместить изменённые файлы в рабочую папку.

Критерии приёмки

  • Макрос должен корректно заменить все ожидаемые вхождения старого названия на новое во всех тестовых документах.
  • После выполнения диалог Найти и заменить должен быть пустым (ClearFindReplace выполнен).
  • Нет неожиданных изменений форматирования и нецелевых замен.
  • Макрос должен работать в целевой версии Word без ошибок.

Мини‑методология тестирования

  • Unit‑тест: ручная проверка на 1 документе с известными примерами вхождений и частичных совпадений.
  • Integration‑тест: запуск на наборе из 10 документов разного типа (релятивные, списки, поля).
  • Smoke‑тест: проверка, что шаблоны, оглавления и ссылки не сломались.

Частые ошибки и когда метод не подойдёт

  • Если у вас сложные регистрозависимые или контекстно-зависимые замены (например, разный падеж/персонализация), простого Find/Replace может быть недостаточно.
  • Если документы содержат поле с кодами (например, встроенные метаданные), массовая замена может нарушить ссылки.
  • Для замены в PDF или в системах управления версиями нужны другие инструменты.

Короткий словарь

  • VBA — Visual Basic for Applications, язык макросов для Office.
  • Sub — подпрограмма или макрос.
  • Selection — текущий выделенный текст в документе.
  • wdReplaceAll — константа Word для «Заменить все».

Вопросы и ответы

Можно ли запускать макросы на Word Online?

Нет, Word Online не поддерживает выполнение макросов; используйте настольную версию Word.

Как откатить изменения, если макрос сделал неправильные замены?

Используйте резервную копию документа или отмените действие сразу после выполнения (Ctrl + Z), если сессия ещё активна. Поэтому тестируйте макросы сначала на копиях.

Как защитить корпоративные макросы?

Подписывайте макросы цифровым сертификатом и размещайте в доверенных каталогах; управляйте политиками через GPO.

Заключение

Макросы Word — это быстрый способ автоматизировать повторяющиеся правки, такие как массовая «Найти и заменить». Начать просто: запишите макрос, протестируйте на копии, затем улучшите код в редакторе Visual Basic. Всегда учитывайте безопасность: подпись и доверенные каталоги снижают риски распространения вредоносного кода.

Короткий чек‑лист на выходе:

  • Включить вкладку Разработчик.
  • Записать макрос для Find/Replace.
  • Остановить запись и протестировать.
  • При необходимости править код в Visual Basic.
  • Подписать и развернуть в доверенной среде.

Социальный превью (рекомендация): заголовок — «Автоматизация поиска и замены в Word: макросы и VBA», описание — «Создайте макрос для массовой замены текста, улучшите код в редакторе Visual Basic и безопасно внедрите его в рабочую среду».

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как найти пропавший Mac с помощью Find My
Техника

Как найти пропавший Mac с помощью Find My

Как перестать терять вещи: трекеры и советы
Гаджеты

Как перестать терять вещи: трекеры и советы

Как воры крадут машины с AirTag — как защититься
Авто безопасность

Как воры крадут машины с AirTag — как защититься

Как настроить и использовать AirTag
Гаджеты

Как настроить и использовать AirTag

AirTag как NFC‑триггер для автоматизаций iPhone
Гаджеты

AirTag как NFC‑триггер для автоматизаций iPhone

Как подключить AirPods к любому устройству
Гайды

Как подключить AirPods к любому устройству