Быстрый способ собрать все ссылки из Word-файла
Чтобы получить список всех гиперссылок в документе Word, проще всего использовать встроенный поиск по полям: нажмите Alt + F9, затем Ctrl + F, введите ^d hyperlink и выделите все найденные элементы — их можно скопировать в новый файл . Для автоматизации и экспорта в текстовый формат подойдёт макрос VBA, который выведет адреса ссылок построчно.
Все методы ниже работают в Word 2010 и новее, включая подписку Microsoft 365. Макросы требуют включения редактора VBA (в настройках ленты активируйте вкладку «Разработчик»).
Метод 1: Поиск полей гиперссылок (без кода)
Этот способ идеален, если нужно быстро проверить наличие ссылок или скопировать их визуально.
- Откройте документ и нажмите
Alt + F9— отобразятся коды полей вместо текста ссылок . - Нажмите
Ctrl + F, в поле поиска введите:^d hyperlink. - В параметрах поиска отметьте «Выделить все найденные элементы».
- Нажмите «Найти все» — все гиперссылки подсветятся в документе.
- Закройте окно поиска, выделите любой подсвеченный фрагмент и нажмите
Ctrl + C— скопируются только выделенные гиперссылки. - Вставьте в новый документ (
Ctrl + V) для просмотра или редактирования.
Если после Alt + F9 вы видите код вида { HYPERLINK "https://..." }, значит, поле раскрыто корректно. Повторное нажатие Alt + F9 вернёт обычный вид.
Метод 2: Макрос VBA — список ссылок в новом документе
Если ссылок много или нужна автоматизация, используйте макрос. Он создаст новый файл со всеми активными гиперссылками (текст + адрес).
- Откройте документ, нажмите
Alt + F11для входа в редактор VBA . - В меню выберите
Insert→Module. - Вставьте код:
Sub GetLinksInNewDoc()
Dim doc As Document, newDoc As Document, hlink As Hyperlink
Set doc = ActiveDocument
Set newDoc = Documents.Add
With doc
For Each hlink In .Hyperlinks
newDoc.Activate
With Selection
.InsertAfter hlink.TextToDisplay & " → " & hlink.Address
.InsertAfter vbNewLine
End With
Next hlink
End With
Set doc = Nothing: Set newDoc = Nothing
End Sub
- Нажмите
F5или кнопку «Run» — новый документ откроется автоматически со списком: текст ссылки → URL.
Макрос обрабатывает только текстовые гиперссылки. Ссылки в изображениях, фигурах или колонтитулах не будут извлечены — для них требуется ручная проверка.
Метод 3: Экспорт адресов ссылок в текстовый файл
Когда нужны только URL (например, для аудита или импорта в базу), используйте этот вариант:
Sub ExportLinksToTxt()
Dim doc As Document, hlink As Hyperlink
Set doc = ActiveDocument
Open doc.Path & "\extracted_links.txt" For Output As #1
With doc
For Each hlink In .Hyperlinks
Print #1, hlink.Address
Next hlink
End With
Close #1
Set doc = Nothing
MsgBox "Ссылки сохранены в: " & doc.Path & "\extracted_links.txt"
End Sub
После запуска в папке с исходным файлом появится extracted_links.txt со списком адресов, по одному на строку .
Сравнение методов
| Метод | Что получает пользователь | Когда использовать |
|---|---|---|
Поиск полей (Alt+F9) | Визуальное выделение ссылок в документе | Быстрая проверка, ручное копирование 5–20 ссылок |
| Макрос в новый документ | Текст ссылки + URL в формате списка | Аудит, подготовка отчёта, передача коллегам |
| Экспорт в TXT | Только адреса ссылок, чистый текст | Импорт в базу, проверка битых ссылок, скрипты |
Частые ошибки
- Не включена вкладка «Разработчик» — без неё не открыть редактор VBA. Включение:
Файл→Параметры→Настроить ленту→ отметить «Разработчик». - Поиск
^d hyperlinkне находит ссылки — убедитесь, что ссылки созданы через «Вставка» → «Гиперссылка», а не просто как подчёркнутый текст. - Макрос выдаёт ошибку 91 — документ не активен или защищён от редактирования. Снимите защиту и убедитесь, что нужный файл открыт и в фокусе.
- Ссылки в таблицах пропускаются — некоторые макросы не обрабатывают вложенные диапазоны. Используйте полную переборку по
StoryRanges, если критично.
FAQ
Можно ли извлечь ссылки из защищённого документа?
Нет — если файл открыт в режиме «Только чтение» или имеет ограничение на редактирование, макросы и поиск полей не сработают. Сначала снимите защиту.
Работает ли это в Word для Mac?
Да, но сочетание для открытия VBA: Opt + Fn + F11. Поиск полей (Alt + F9) работает аналогично .
Как проверить, битые ли ссылки?
После извлечения адресов используйте онлайн-инструменты проверки ссылок или надстройки Word (например, «Проверка ссылок» в Kutools), но вручную — через браузер — надёжнее для критичных документов.
Можно ли получить не только URL, но и текст вокруг ссылки?
Стандартными средствами — нет. Для извлечения контекста потребуется доработка макроса с обращением к hlink.Range.StoryText и анализом соседних абзацев.
Сохраняйте макросы в шаблон Normal.dotm, чтобы использовать их в любых документах без повторного копирования кода.