В этой статье мы покажем вам автоматический способ быстрой пакетной проверки всех гиперссылок в вашем документе Word с помощью VBA.
Документ Word может содержать множество гиперссылок, даже сотни. Среди них есть недействительные ссылки, которые не ведут на правильную веб-страницу. Таким образом, мы хотим предложить вам способ быстрой проверки всех ссылок в документе через VBA.
Установите и сохраните макрос Word
- Прежде всего, откройте редактор VBA с помощью «Alt + F11».
- Затем нажмите «Обычный» проект.
- Затем нажмите вкладку «Вставить» в меню панели инструментов.
- И выберите «Модуль» в меню.
- Дважды щелкните модуль, чтобы открыть окно редактирования, и вставьте туда следующие коды:
Function CheckURL(strURL As String) As Boolean
Dim objDemand As Object
Dim varResult As Variant
On Error GoTo ErrorHandler
Set objDemand = CreateObject("WinHttp.WinHttpRequest.5.1")
With objDemand
.Open "GET", strURL, False
.Send
varResult = .StatusText
End With
Set objDemand = Nothing
If varResult = "OK" Then
CheckURL = True
Else
CheckURL = False
End If
ErrorHandler:
End Function
Sub ReturnURLCheck()
Dim objLink As Hyperlink
Dim strLinkText As String
Dim strLinkAddress As String
Dim strResult As String
Dim nInvalidLink As Integer, nTotalLinks As Integer
Dim objDoc As Document
Application.ScreenUpdating = False
Set objDoc = ActiveDocument
nTotalLinks = objDoc.Hyperlinks.Count
nInvalidLink = 0
With objDoc
For Each objLink In .Hyperlinks
strLinkText = objLink.Range.Text
strLinkAddress = objLink.Address
If Not CheckURL(strLinkAddress) Then
nInvalidLink = nInvalidLink + 1
strResult = frmCheckURLs.txtShowResult.Text
frmCheckURLs.txtShowResult.Text = strResult & nInvalidLink & ". Invalid Link Information:" & vbNewLine & _
"Displayed Text: " & strLinkText & vbNewLine & _
"Address: " & strLinkAddress & vbNewLine & vbNewLine
End If
Next objLink
frmCheckURLs.txtTotalLinks.Text = nTotalLinks
frmCheckURLs.txtNumberOfInvalidLinks.Text = nInvalidLink
frmCheckURLs.Show Modal
End With
Application.ScreenUpdating = True
End Sub
Sub HighlightInvalidLinks()
Dim objLink As Hyperlink
Dim strLinkAddress As String
Dim strResult As String
Dim objDoc As Document
Set objDoc = ActiveDocument
With objDoc
For Each objLink In .Hyperlinks
strLinkAddress = objLink.Address
If Not CheckURL(strLinkAddress) Then
objLink.Range.HighlightColorIndex = wdYellow
End If
Next objLink
End With
End Sub
- Далее нажмите «Сохранить».
- Затем назначьте кнопку для макроса. Вы можете обратиться к следующей статье для получения подробной информации:
Как удалить форматирование вставленных текстов с помощью макроса и VBA в вашем Word
Создать форму пользователя
С помощью пользовательской формы вы можете четко видеть общее количество ссылок в текущем документе, количество недействительных ссылок и другие подробности.
- Во-первых, снова нажмите «Вставить» на панели инструментов. Но на этот раз выберите «UserForm».
- Затем нажмите «F4», чтобы открыть «Окно свойств» в левом нижнем углу. Размер окна регулируется.
- Теперь назовите форму пользователя «frmCheckURLs».
- Установите заголовок как «Проверить URL-адреса».
- Затем установите шрифт правильно.
- Затем нажмите кнопку «Панель инструментов» на панели инструментов.
- Теперь нажмите «Метка» на панели инструментов. С помощью мыши перетащите прямоугольную метку на форму пользователя.
- Нажмите на метку, чтобы активировать окно ее свойств. Установите имя ярлыка как «lblInvalidURLs», а заголовок ярлыка как «Недопустимые URL-адреса:».
- Затем выберите правильный шрифт и передний цвет для текста заголовка метки.
- Выберите «Текстовое поле» на панели инструментов и вставьте текстовое поле в форму пользователя. Отрегулируйте его размер.
- Затем установите имя текстового поля как «txtShowResult».
- Установите шрифт и передний цвет по желанию.
- Найдите «MultiLine» и установите «True».
- Найдите «Полосы прокрутки» и выберите вертикальную полосу.
- Затем создайте еще две метки и текстовые поля.
- Затем назовите первую метку как «lblTotalLinks» и установите заголовок как «Всего ссылок в этом документе».
- И назовите вторую метку как «lblNumberOfInvalidLinks» и установите заголовок как «Количество недействительных ссылок».
- Назовите первое текстовое поле как «txtTotalLinks», а второе как «txtNumberOfInvalidLinks».
- Затем найдите кнопку управления на панели инструментов. Создайте две командные кнопки, такие как ниже:
- Назовите первую кнопку «cmdbtnClose», а текст ее заголовка — «Close».
- Назовите вторую кнопку как «btnCloseAndHighlightInvalidURLs», а ее текст заголовка как «Закрыть и выделить недопустимые URL-адреса».
- Затем дважды щелкните кнопку «Закрыть» и кнопку «Закрыть и выделить недопустимые URL-адреса» соответственно. Введите коды следующим образом:
Запустить макрос
Нажмите кнопку, назначенную макросу. Вот окончательный эффект:
Вы можете увидеть подробную информацию о каждой неудачной ссылке в левом большом текстовом поле. И вы можете закрыть форму пользователя напрямую или закрыть ее, выделив все неработающие ссылки в документе.
Внимательно относитесь к проблемам с Word
Word легко подвержен ошибкам. Таким образом, становится чрезвычайно важным исправить слово correctly. Most of the time, the built-in tool can’t help you so much. Therefore, you top choice is to get a third-party repairing tool.
Об авторе:
Вера Чен — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановить xlsx и pdf ремонт программных продуктов. Для получения дополнительной информации посетите www.datanumen.com








