Удаление всех гиперссылок в Word через VBA
TL;DR
Если вам нужно быстро убрать все гиперссылки из документа Word, создайте простой макрос VBA с двумя строками кода и назначьте ему сочетание клавиш. Для пакетной обработки документов или удаления ссылок в колонтитулах используйте расширённые макросы, которые я привожу ниже.

Удаление гиперссылок в Word проще, чем их добавление, но повторение одной и той же операции вручную утомительно при большом количестве документов. VBA (Visual Basic for Applications) — встроенный язык макросов в Office — позволяет автоматизировать почти любую задачу, в том числе массовое удаление гиперссылок.
Этот материал показывает: как создать макрос, который снимает все гиперссылки в документе, как назначить ему сочетание клавиш, альтернативные способы и расширения для обработки нескольких файлов или всех областей документа (тело, колонтитулы, сноски).
Зачем использовать макрос
- Экономит время: одна команда заменяет десятки или сотни ручных действий.
- Надёжно: удаляются именно поля гиперссылок, а видимый текст остаётся.
- Гибко: макрос легко дополняется для обработки папок или всех «story ranges» документа.
Важно: макросы изменяют документ — сделайте резервную копию перед массовыми операциями.
Как автоматически удалить все гиперссылки в документе Word с помощью VBA
VBA — это язык, на котором вы пишете макросы. Запуск макроса выполняет написанный код. Для нашей задачи достаточно двух строк кода, которые выбирают весь текст и «отвязывают» поля (fields). Последующие разделы пошагово описывают создание макроса и назначение горячих клавиш.
1. Открыть вкладку Разработчик
По умолчанию вкладка «Разработчик» скрыта в Word по соображениям безопасности. Чтобы включить её:

- Откройте меню Файл.
- Выберите Параметры.
- В меню слева выберите Настройка ленты.
- Справа в разделе Основные вкладки поставьте галочку на Разработчик.
- Нажмите ОК.
Теперь вкладка «Разработчик» появится между «Вид» и «Справка».
2. Создание макроса
- Перейдите на вкладку Разработчик.
- В группе Код нажмите Макросы.
- Введите имя макроса (например, UnlinkAllHyperlinks) и нажмите Создать.

В редакторе VBA вы увидите шаблон с Sub и End Sub. Скопируйте и вставьте между ними следующий код:
Selection.WholeStory
Selection.Fields.UnlinkЭтот код сначала выделяет весь документ (Selection.WholeStory), затем выполняет команду отмены привязки полей (Fields.Unlink). В результате гиперссылки разрываются, но текст или изображения остаются.

3. Назначение сочетания клавиш и запуск макроса
- В меню Файл выберите Параметры.
- В Параметрах Word откройте Настройка ленты.
- Нажмите Настройка рядом с подписью Сочетания клавиш.

- В списке Категории выберите Макросы, справа выберите ваш макрос.
- В поле Нажмите новую клавишу введите желаемое сочетание (рекомендуется включать Ctrl+Shift или Alt, чтобы не конфликтовать со стандартными сочетаниями).
- Нажмите Назначить, затем Закрыть и ОК.

Теперь достаточно открыть документ и нажать назначенную комбинацию — макрос выполнит своё действие.
Быстрые альтернативы без макроса
- Выделите весь документ (Ctrl+A) и нажмите Ctrl+Shift+F9 — это стандартное сочетание, которое превращает поля в обычный текст (аналог Selection.Fields.Unlink).
- Для одиночных ссылок: правой кнопкой на ссылке → Убрать гиперссылку.
- Отключите автоформатирование ссылок: Файл → Параметры → Правописание → Параметры автозамены → Автоформат при вводе → снимите «Интернет-адреса и сети».
Расширенные макросы и сценарии
Ниже — несколько полезных вариантов кода, которые решают типовые ограничения простого макроса.
Удаление гиперссылок во всех областях документа (колонтитулы, заметки, текстовые поля)
Иногда гиперссылки находятся в заголовках, колонтитулах, примечаниях — в Word это разные story ranges. Пример макроса, который проходит по всем story ranges и отвязывает поля:
Sub UnlinkFieldsInAllStories()
Dim rngStory As Range
Dim tmpStory As Range
For Each rngStory In ActiveDocument.StoryRanges
Set tmpStory = rngStory
Do
tmpStory.Fields.Unlink
If tmpStory.NextStoryRange Is Nothing Then Exit Do
Set tmpStory = tmpStory.NextStoryRange
Loop
Next rngStory
End SubЭтот макрос безопаснее для документов со сложной структурой: он обработает основной текст, заголовки, колонтитулы, сноски и служебные области.
Пакетная обработка всех файлов в папке
Если нужно обработать десятки файлов в папке, используйте макрос, открывающий каждый документ, выполняющий операцию и сохранивший результат:
Sub UnlinkHyperlinksInFolder()
Dim fso As Object, folder As Object, file As Object
Dim doc As Document
Dim folderPath As String
folderPath = "C:\Path\To\Folder" ' Замените на нужный путь
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
If LCase(Right(file.Name, 5)) = ".docx" Or LCase(Right(file.Name, 4)) = ".doc" Then
Set doc = Documents.Open(file.Path)
doc.Content.Fields.Unlink
doc.Save
doc.Close
End If
Next
End SubВажно: замените путь в переменной folderPath на актуальный. Перед запуском сделайте резервную копию папки.
Когда макрос не сработает или будет недостаточно
- Гиперссылки как «текст», вставленный вручную (не поля) — макрос ничего не сделает, потому что здесь нет полей для отвязки.
- Ссылки внутри вложенных объектов (OLE-объектов) или в PDF, вставленном как объект — их нужно удалять вручную или обрабатывать отдельно.
- Если документ защищён или открыт в режиме «только для чтения», макрос не сможет сохранить изменения до снятия защиты.
- Макросы могут быть заблокированы политиками безопасности в корпоративной среде — обратитесь к администратору.
Практические советы и эвристики
- Перед массовыми изменениями выполните тест на 1–3 файлах.
- Для избежания конфликтов сочетаний клавиш используйте комбинации с Ctrl+Shift+Alt.
- Храните часто используемые макросы в шаблоне Normal.dotm, если хотите, чтобы они были доступны во всех документах.
- В корпоративной среде согласуйте использование макросов с отделом безопасности и резервируйте документы.
Чек-листы по ролям
Для контент-редактора:
- Создать резервную копию документа.
- Запустить макрос в тестовом файле.
- Проверить, что видимый текст не потерян.
- Запустить макрос на основном файле.
Для администратора (при пакетной обработке):
- Проверить политику макросов в Office Group Policy.
- Развернуть шаблон с макросом (если требуется).
- Провести тесты на защищённых и незашифрованных файлах.
Для разработчика макросов:
- Обработать все story ranges для полноты.
- Добавить логирование успешных/ошибочных файлов.
- Реализовать безопасное исключение и откат при ошибке.
Критерии приёмки
- Все гиперссылки разорваны (неактивны) во всех видимых частях документа.
- Текст или изображение, являющееся якорем, сохранены без изменений.
- Документ открывается и сохраняется без ошибок.
Краткий словарь
- Поле (Field): элемент Word, который хранит динамическое содержимое (например, HYPERLINK).
- Unlink: операция превращения поля в обычный текст.
- Story range: отдельная область документа (основной текст, колонтитулы, сноски и т. п.).
Безопасность и приватность
- Макросы могут запускать произвольный код — загружайте макросы только из доверенных источников.
- Перед пакетной обработкой убедитесь, что документы не содержат конфиденциальных данных, которые нельзя изменять или публиковать.
Краткое резюме
Удаление гиперссылок в Word можно сделать быстро: для одного документа достаточно двух строк кода в макросе или сочетания Ctrl+A → Ctrl+Shift+F9. Для сложных документов и пакетной обработки используйте расширённые макросы, которые обходят все story ranges и папки. Всегда делайте резервные копии и проверяйте политику безопасности при работе в корпоративной среде.
Важно: тестируйте макросы и применяйте их аккуратно при массовой обработке файлов.