Найти в Дзене
Макрос решает

ЧАСТЬ 2. Замена текста в Word без ошибок: точная замена, маски и автоматизация через VBA

Научитесь безопасно использовать функцию «Заменить» в Word. Только точные слова, учёт регистра, подстановочные знаки и автоматизация через VBA. Примеры, ошибки, макросы. ЧАСТЬ 1. Всё о Поиске в Word: как находить нужные слова за секунды — от новичка до профи ЧАСТЬ 2. Замена текста в Word без ошибок: точная замена, маски и автоматизация через VBA Простой вопрос:
Как заменить слово “дверь” на “калитка” — только когда это именно “дверь”, а не “дверью”, “двери” или “поддверный”? А теперь добавим:
– нужно учесть регистр,
– применить замену в сотне документов,
– исключить колонтитулы и сноски,
– и при этом всё должно работать автоматически. Обычная кнопка “Ctrl + H” с этим уже не справится. В этой статье разберём всё: от простой замены до макросов и подстановочных знаков. Нажимаем Ctrl + H. Появляется окно: Что происходит: Word заменяет всё подряд — включая «дверью», «дверей», «поддверный». Чтобы заменить только “дверь”, без изменений окончаний и других слов: Теперь Word не тронет ни «дверью
Оглавление

Научитесь безопасно использовать функцию «Заменить» в Word. Только точные слова, учёт регистра, подстановочные знаки и автоматизация через VBA. Примеры, ошибки, макросы.

ЧАСТЬ 1. Всё о Поиске в Word: как находить нужные слова за секунды — от новичка до профи

ЧАСТЬ 2. Замена текста в Word без ошибок: точная замена, маски и автоматизация через VBA

📌 Введение

Простой вопрос:
Как заменить слово “дверь” на “калитка” — только когда это именно “дверь”, а не “дверью”, “двери” или “поддверный”?

А теперь добавим:
– нужно учесть регистр,
– применить замену в сотне документов,
– исключить колонтитулы и сноски,
– и при этом всё должно работать автоматически.

Обычная кнопка “Ctrl + H” с этим уже не справится. В этой статье разберём всё: от простой замены до макросов и подстановочных знаков.

🔁 Простейшая замена: Ctrl + H

Нажимаем Ctrl + H. Появляется окно:

  • Найти:
  • Заменить на:
  • Кнопки: Найти далее, Заменить, Заменить все.

Пример:

  • Найти: дверь
  • Заменить на: калитка
  • Нажимаем «Заменить всё»

Что происходит: Word заменяет всё подряд — включая «дверью», «дверей», «поддверный».

✅ Как заменить только точное слово

Чтобы заменить только “дверь”, без изменений окончаний и других слов:

  1. Нажмите Больше
  2. Отметьте ☑ Только слово целиком

Теперь Word не тронет ни «дверью», ни «дверей».

🔠 Учитываем регистр

Нужно заменить только “Дверь” с заглавной буквы?

Макрос решает

Активируйте:

  • ☑ Учитывать регистр

🧪 Подстановочные знаки (шаблоны)

Если включить ☑ Использовать подстановочные знаки, вы сможете использовать маски — это почти как регулярные выражения.

-2

Примеры:

  • <двер*> — найдёт только слова, начинающиеся с «двер», как «дверь», «дверной», но не «поддверный»
  • д*ь> — слова, заканчивающиеся на «дь»

⚠ Частые ошибки при замене

  1. ❌ Не включена галочка “Только слово целиком”
    → Word заменит и части слов: дверь → калитка → калиткой, калитей…
  2. ❌ Использование шаблонов без понимания
    → Символы *, ?, [ ] начинают работать как маски
  3. ❌ Пробелы, знаки препинания
    → Лишний пробел или точка в строке может «сломать» поиск

🔍 Пошаговая безопасная замена

  1. Введите текст для поиска и замены
  2. Установите нужные флажки (регистр, слово целиком и т.д.)
  3. Нажмите Найти далее
  4. Убедитесь, что результат верный
  5. Нажмите Заменить
  6. Проверьте 3–5 замен
  7. Только после этого нажимайте Заменить все

📑 Проблемы с заменой в заголовках, сносках и таблицах

Стандартная функция не видит:

  • сносок
  • колонтитулов
  • защищённых ячеек таблицы
  • текстовых полей (Shape)
  • заголовков документа

Для таких случаев нужен VBA.

⚙ VBA №1: Замена точного слова в теле документа

Sub ReplaceExactWord()
With Selection.Find
.Text = "дверь"
.Replacement.Text = "калитка"
.Forward = True
.Wrap = wdFindContinue
.MatchWholeWord = True
.MatchCase = False
.Execute Replace:=wdReplaceAll
End With
End Sub

⚙ VBA №2: Замена по шаблону с учётом регистра

Sub ReplaceWithWildcards()
With Selection.Find
.Text = "<двер*>"
.Replacement.Text = "калитка"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
End Sub

⚙ VBA №3: Заменять вручную с подтверждением пользователя

Sub StepByStepReplace()
Dim userChoice As VbMsgBoxResult
With Selection.Find
.Text = "дверь"
.Replacement.Text = "калитка"
.Forward = True
.Wrap = wdFindStop
.MatchWholeWord = True
Do While .Execute
userChoice = MsgBox("Заменить это вхождение?", vbYesNoCancel)
If userChoice = vbYes Then
Selection.Text = "калитка"
ElseIf userChoice = vbCancel Then
Exit Sub
End If
Loop
End With
End Sub

⚙ VBA №4: Массовая замена в десятках документов

Sub BatchReplaceInFolder()
Dim doc As Document
Dim folderPath As String
Dim fileName As String
folderPath = "C:\Users\User\Documents\WordBatch\"
fileName = Dir(folderPath & "*.docx")
Do While fileName <> ""
Set doc = Documents.Open(folderPath & fileName)
With doc.Content.Find
.Text = "дверь"
.Replacement.Text = "калитка"
.MatchWholeWord = True
.Execute Replace:=wdReplaceAll
End With
doc.Save
doc.Close
fileName = Dir
Loop
End Sub

📌 Где это применимо?

-3

🔔 Подпишитесь и напишите о своём опыте

Если вам эта статья помогла — сохраните и отправьте коллегам. А если хотите шаблон на все случаи жизни — напишите в комментарии. Подписывайтесь на Макрос решает, чтобы не пропустить новые статьи и PDF-гайды.

Макрос решает

ЧАСТЬ 1. Всё о Поиске в Word: как находить нужные слова за секунды — от новичка до профи

ЧАСТЬ 2. Замена текста в Word без ошибок: точная замена, маски и автоматизация через VBA