Удаление всех гиперссылок в Word с помощью VBA

Введение
Удалять гиперссылки в Word вручную легко, но утомительно, если нужно обработать десятки документов. VBA (Visual Basic for Applications) позволяет автоматизировать эту задачу: достаточно записать короткий макрос и запускать его по горячей клавише или запустить пакетную обработку.
Кратко о терминах:
- VBA — встроенный язык автоматизации для приложений Office.
- Макрос — фрагмент кода VBA, выполняющий набор команд.
Важно: макросы изменяют документы. Делайте резервные копии перед массовой обработкой.
Что делает предлагаемый макрос
Макрос выбирает весь документ и выполняет команду Unlink для полей. Это удаляет связь гиперссылки, но сохраняет видимый текст или изображение, на которое была ссылка.
Быстрая инструкция: создать и запустить макрос
1. Включите вкладку Разработчик
- Откройте меню Файл.
- Выберите Параметры.
- В разделе Настройка ленты отметьте пункт Разработчик в списке Основные вкладки.
- Нажмите ОК.
После этого вкладка Разработчик появится между Вид и Справка.
2. Создайте макрос
- Перейдите на вкладку Разработчик.
- В группе Код нажмите Макросы.
- Введите имя макроса (например, RemoveAllHyperlinks) и нажмите Создать.
Вы попадёте в окно редактора VBA. По умолчанию там будет шаблон:
Sub RemoveAllHyperlinks()
End SubСкопируйте и вставьте между строками эти две команды:
Selection.WholeStory
Selection.Fields.UnlinkВ итоге код будет выглядеть так:
Sub RemoveAllHyperlinks()
Selection.WholeStory
Selection.Fields.Unlink
End SubСохраните и закройте окно редактора VBA.
3. Назначьте сочетание клавиш для макроса
- Откройте Файл → Параметры → Настройка ленты.
- Нажмите кнопку Настроить рядом с Надстройками клавиатуры (Customize Keyboard). Откроется окно настройки клавиш.
- В списке Категории выберите Макросы.
- В списке Макросы выберите ваш макрос.
- Нажмите в поле Нажмите новую комбинацию клавиш и укажите сочетание (рекомендуется Ctrl+Shift+Alt+<буква>).
- Нажмите Назначить, затем Закрыть и ОК.
Теперь при нажатии заданной комбинации все гиперссылки в активном документе будут удаляться.
Быстрая альтернатива без макроса
- Выделите весь документ (Ctrl+A) и нажмите Ctrl+Shift+F9 — это стандартное сочетание для удаления полей (включая гиперссылки) из выделения. Это быстрее, если нужно единоразово обработать один документ.
- Для единичной ссылки можно правой кнопкой мыши выбрать Удалить гиперссылку.
Пакетная обработка: удалить гиперссылки во всех документах в папке
Если нужно обработать множество файлов, используйте макрос, который открывает каждый файл, выполняет Unlink и сохраняет изменения. Пример:
Sub UnlinkAllInFolder()
Dim folderPath As String
Dim fileName As String
Dim doc As Document
' Укажите путь к папке (без завершающего слэша)
folderPath = "C:\Docs\ToProcess"
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
fileName = Dir(folderPath & "*.doc*")
While fileName <> ""
Set doc = Documents.Open(folderPath & fileName)
doc.Activate
Selection.WholeStory
Selection.Fields.Unlink
doc.Save
doc.Close
fileName = Dir()
Wend
MsgBox "Готово: обработаны все документы в папке."
End SubПримечание: укажите корректный путь к папке и убедитесь, что у вас есть резервные копии. Скрипт обрабатывает файлы с расширением .doc и .docx; если необходимо, уточните маску поиска.
Когда это может не сработать
- Если гиперссылка встроена не как поле (например, ссылку вставили как часть рисунка в OLE-объекте), Unlink может не удалить связь.
- Если документ защищён от изменений, макрос не сможет внести правки. Снимите защиту или используйте пароль.
- Если в настройках безопасности макросы отключены, код не запустится. См. раздел «Параметры макросов».
Важно: в настройках Центра управления безопасностью (Trust Center) разрешите выполнение макросов или подпишите макрос цифровой подписью для безопасного применения в корпоративной среде.
Советы и лучшие практики
- Всегда делайте резервную копию перед массовыми изменениями.
- В тестовой папке сначала запустите пакетный макрос на 2–3 файлах, чтобы убедиться, что результат соответствует ожиданиям.
- Для распространения макроса в организации используйте цифровую подпись и Group Policy для настройки доверенных макросов.
Проверка результата и критерии приёмки
Критерии приёмки:
- В документе не осталось активных гиперссылок (проверяется кликом по предполагаемому адресу).
- Видимый текст и изображения остались без изменений по содержанию и форматированию.
- Документ открывается и сохраняется без ошибок.
Тесты:
- Откройте документ до и после макроса; нажмите Ctrl+K на тексте, чтобы проверить отсутствие ссылки.
- Проверьте несколько разных типов ссылок: обычный URL, ссылка на почту, ссылка в примечании и ссылка в закладке.
Роли и контрольный список
Для автора/редактора:
- Сделать резервную копию документа.
- Запустить макрос в одном тестовом документе.
- Проверить, сохранён ли видимый текст.
Для администратора ИТ:
- Проверить политику макросов и настройки безопасности.
- Подписать макрос цифровой подписью для распространения.
- Обеспечить инструкции по откату изменений.
Устранение неполадок
Проблема: макрос не запускается — что проверить:
- Включена ли вкладка Разработчик и доступен ли редактор VBA.
- Уровень безопасности макросов в Файл → Параметры → Центр управления безопасностью → Параметры Центра управления безопасностью → Параметры макросов.
- Не заблокирован ли файл антивирусом или политикой безопасности.
Откат изменений:
- Если вы работали без резервной копии, попытайтесь восстановить предыдущую версию через Файл → Информация → Версии документа (если включено автосохранение/история версий).
Совместимость и примечания по платформам
- Windows: VBA и макросы полностью поддерживаются в настольной версии Word.
- Mac: современные версии Word для Mac поддерживают VBA, но интерфейс назначения горячих клавиш и некоторые особенности могут отличаться.
- Word Online: макросы VBA не выполняются; пакетную обработку придётся запускать в настольной версии.
Альтернативные подходы
- Использовать сочетание клавиш Ctrl+A, затем Ctrl+Shift+F9 для быстрого удаления полей в одном документе без макроса.
- Написать внешнюю утилиту (PowerShell или скрипт на Python с библиотекой python-docx) для массовой обработки, если требуется интеграция в пайплайн. (Такой подход требует дополнительных прав и проверки совместимости.)
Краткое руководство по сочетаниям клавиш
- Ctrl+A — выделить весь документ.
- Ctrl+Shift+F9 — удалить поля из выделения (включая ссылки).
- Ваше собственное сочетание — запускает макрос RemoveAllHyperlinks (после назначения).
Итог
Удаление гиперссылок в Word легко автоматизируется. Для одиночного документа хватит Ctrl+A + Ctrl+Shift+F9. Для регулярной или пакетной обработки удобнее создать макрос VBA, назначить ему сочетание клавиш и (при необходимости) расширить макрос на обработку всех файлов в папке. Всегда проверяйте настройку безопасности макросов и делайте резервные копии.
Важно: перед применением в рабочем окружении протестируйте макрос и обозначьте политику использования макросов для коллег.
Сводка
- Макрос: Selection.WholeStory + Selection.Fields.Unlink удаляет гиперссылки, сохраняя текст.
- Быстрая альтернатива: Ctrl+A, затем Ctrl+Shift+F9.
- Для пакетной обработки используйте макрос, который открывает файлы в папке и выполняет Unlink.
- Всегда делайте резервные копии и учитывайте настройки безопасности макросов.
Похожие материалы
Запланировать умную розетку через Alexa
Перенос Pokémon из GO в HOME — инструкция
Выровнять текст по центру через ячейки в Excel
Как заблокировать номер на iPhone быстро
Лучшие приложения для поиска созвездий