Neste artigo, mostraremos uma maneira automática de validar rapidamente em lote todos os hiperlinks em seu documento do Word via VBA.
Um documento do Word pode conter muitos hiperlinks, centenas até. Entre eles, alguns são links inválidos que não levam você a uma página correta. Assim, queremos oferecer a você a maneira de verificar rapidamente todos os links em um documento via VBA.
Instalar e salvar uma macro do Word
- Em primeiro lugar, abra o editor VBA com “Alt+ F11”.
- Em seguida, clique em projeto “Normal”.
- Em seguida, clique na guia "Inserir" no menu da barra de ferramentas.
- E escolha “Módulo” no menu.
- Clique duas vezes no módulo para abrir o espaço de edição e cole os seguintes códigos lá:
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
- A seguir clique em “Salvar”.
- Em seguida, atribua um botão para a macro. Você pode consultar o seguinte artigo para obter informações detalhadas:
Como remover a formatação de textos colados com macro e VBA no seu Word
Criar um formulário de usuário
Com um formulário de usuário, você pode ver claramente o número total de links no documento atual, o número de links inválidos e mais detalhes.
- Em primeiro lugar, clique em “Inserir” na barra de ferramentas novamente. Mas desta vez, escolha “UserForm”.
- Em seguida, pressione “F4” para abrir a “Janela de propriedades” no canto inferior esquerdo. O tamanho da janela é ajustável.
- Agora nomeie o formulário de usuário como “frmCheckURLs”.
- Defina a legenda como "Verificar URLs".
- Em seguida, defina a fonte corretamente.
- Em seguida, clique no botão "Caixa de ferramentas" na barra de ferramentas.
- Agora clique em “Rótulo” na caixa de ferramentas. Use o mouse para arrastar um rótulo retangular no formulário do usuário.
- Clique no rótulo para ativar sua janela de propriedades. Defina o nome do rótulo como “lblInvalidURLs” e a legenda do rótulo como “URLs inválidos:”.
- Em seguida, escolha a fonte e a cor de fundo adequadas para o texto da legenda do rótulo.
- Escolha “Caixa de texto” na caixa de ferramentas e insira uma caixa de texto no formulário do usuário. Ajuste seu tamanho.
- Em seguida, defina o nome da caixa de texto como “txtShowResult”.
- Defina a fonte e a cor de fundo conforme desejado.
- Encontre “MultiLine” e defina-o como “True”.
- Encontre “Barras de rolagem” e escolha uma barra vertical.
- Em seguida, crie mais dois rótulos e caixas de texto.
- Em seguida, nomeie o primeiro rótulo como “lblTotalLinks” e defina a legenda como “Total de links neste documento”.
- E nomeie o segundo rótulo como “lblNumberOfInvalidLinks” e defina a legenda como “Número de links inválidos”.
- Nomeie a primeira caixa de texto como “txtTotalLinks” e a segunda como “txtNumberOfInvalidLinks”.
- Em seguida, encontre o controle do botão de comando na caixa de ferramentas. Crie dois botões de comando, como abaixo:
- Nomeie o primeiro botão como “cmdbtnClose” e seu texto de legenda como “Close”.
- Nomeie o segundo botão como “btnCloseAndHighlightInvalidURLs” e seu texto de legenda como “Fechar e realçar URLs inválidos”.
- Em seguida, clique duas vezes no botão "Fechar" e no botão "Fechar e realçar URLs inválidos", respectivamente. Digite os códigos da seguinte forma:
Execute a Macro
Clique no botão atribuído à macro. Aqui está o efeito final:
Você pode ver informações detalhadas sobre cada link com falha na grande caixa de texto à esquerda. E você pode optar por fechar o formulário do usuário diretamente ou fechá-lo enquanto destaca todos os links quebrados no documento.
Lide com os problemas do Word com cuidado
O Word é facilmente sujeito a erros. Assim torna-se de extrema importância corrigir palavra corretamente. Most na maioria das vezes, a ferramenta integrada não pode ajudá-lo muito. Portanto, sua melhor escolha é obter uma ferramenta de reparo de terceiros.
Introdução do autor:
Vera Chen é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo consertar xlsx e pdf reparar produtos de software. Para mais informações visite www.datanumen.com








