Outlook: Como extrair todas as URLs de um email
Se um email contém centenas de URLs que precisam ser extraídas para um arquivo de texto, copiá-las e colá-las uma por uma será uma tarefa tediosa. Este tutorial apresenta VBAs que podem extrair rapidamente todas as URLs de um email.
VBA para extrair URLs de um email para um arquivo de texto
VBA para extrair URLs de vários emails para um arquivo do Excel
- Aumente sua produtividade de email com tecnologia de IA, permitindo que você responda rapidamente a emails, crie novos, traduza mensagens e muito mais.
- Automatize o envio de emails com CC/BCC automático, Encaminhamento automático por regras; envie Resposta automática (Fora do Escritório) sem necessidade de um servidor de exchange...
- Receba lembretes como Solicitar ao responder a um email em CCO comigo quando responder a todos estando na lista de CCO, e Lembrete de Anexos Ausentes para anexos esquecidos...
- Melhore a eficiência dos emails com Responder (Todos) Com Anexos, Adicionar automaticamente Saudação ou Data & Hora na Assinatura ou Assunto, Responder Múltiplos Emails...
- Simplifique o envio de emails com Recallar Email, Ferramentas de Anexo (Comprimir Todos, Salvar Todos Automaticamente...), Excluir Duplicados e Relatório Rápido...
VBA para extrair URLs de um email para um arquivo de texto
1. Selecione um email do qual deseja extrair as URLs e pressione as teclas Alt + F11 para ativar a janela Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo para criar um novo módulo em branco, depois copie e cole o código abaixo no módulo.
VBA: extrair todas as URLs de um email para um arquivo de texto.
Sub ExportUrlToTextFileFromEmail()
'UpdatebyExtendoffice20220413
Dim xMail As Outlook.MailItem
Dim xRegExp As RegExp
Dim xMatchCollection As MatchCollection
Dim xMatch As Match
Dim xUrl As String, xSubject As String, xFileName As String
Dim xFs As FileSystemObject
Dim xTextFile As Object
Dim i As Integer
Dim InvalidArr
On Error Resume Next
If Application.ActiveWindow.Class = olInspector Then
Set xMail = ActiveInspector.CurrentItem
ElseIf Application.ActiveWindow.Class = olExplorer Then
Set xMail = ActiveExplorer.Selection.Item(1)
End If
Set xRegExp = New RegExp
With xRegExp
.Pattern = "(https?[:]//([0-9a-z=\?:/\.&-^!#$;_])*)"
.Global = True
.IgnoreCase = True
End With
If xRegExp.test(xMail.Body) Then
InvalidArr = Array("/", "\", "*", ":", Chr(34), "?", "<", ">", "|")
xSubject = xMail.Subject
For i = 0 To UBound(InvalidArr)
xSubject = VBA.Replace(xSubject, InvalidArr(i), "")
Next i
xFileName = "C:\Users\Public\Downloads\" & xSubject & ".txt"
Set xFs = CreateObject("Scripting.FileSystemObject")
Set xTextFile = xFs.CreateTextFile(xFileName, True)
xTextFile.WriteLine ("Export URLs:" & vbCrLf)
Set xMatchCollection = xRegExp.Execute(xMail.Body)
i = 0
For Each xMatch In xMatchCollection
xUrl = xMatch.SubMatches(0)
i = i + 1
xTextFile.WriteLine (i & ". " & xUrl & vbCrLf)
Next
xTextFile.Close
Set xTextFile = Nothing
Set xMatchCollection = Nothing
Set xFs = Nothing
Set xFolderItem = CreateObject("Shell.Application").NameSpace(0).ParseName(xFileName)
xFolderItem.InvokeVerbEx ("open")
Set xFolderItem = Nothing
End If
Set xRegExp = Nothing
End Sub
Neste código, será criado um novo arquivo de texto nomeado com o assunto do email e colocado no caminho: C:\Users\Public\Downloads; você pode alterá-lo conforme necessário.

3. Clique em Ferramentas > Referências para abrir a caixa de diálogo Referências – Projeto 1, marque a caixa de seleção Microsoft VBScript Regular Expressions 5.5. Clique em OK.


4. Pressione a tecla F5 ou clique no botão Executar para executar o código; agora, um arquivo de texto aparecerá e todas as URLs terão sido extraídas nele.


Observação: se você for usuário do Outlook 2010 e do Outlook 365, também marque a caixa de seleção Windows Script Host Object Model na Etapa 3. Depois, clique em OK.
VBA para extrair URLs de vários emails para um arquivo do Excel
Se você deseja extrair URLs de vários emails selecionados para um arquivo do Excel, o código VBA abaixo pode ajudá-lo.
1. Selecione um email do qual deseja extrair as URLs e pressione as teclas Alt + F11 para ativar a janela Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo para criar um novo módulo em branco, depois copie e cole o código abaixo no módulo.
VBA: extrair todas as URLs de vários emails para um arquivo do Excel
'UpdatebyExtendoffice20220414
Dim xExcel As Excel.Application
Dim xExcelWb As Excel.Workbook
Dim xExcelWs As Excel.Worksheet
Sub ExportAllUrlsToExcelFromMultipleEmails()
Dim xMail As MailItem
Dim xSelection As Selection
Dim xWordDoc As Word.Document
Dim xHyperlink As Word.Hyperlink
On Error Resume Next
Set xSelection = Outlook.Application.ActiveExplorer.Selection
If (xSelection Is Nothing) Then Exit Sub
Set xExcel = CreateObject("Excel.Application")
Set xExcelWb = xExcel.Workbooks.Add
Set xExcelWs = xExcelWb.Sheets(1)
xExcelWb.Activate
With xExcelWs
.Range("A1") = "Subject"
.Range("B1") = "DisplayText"
.Range("C1") = "Link"
End With
With xExcelWs.Range("A1", "C1").Font
.Bold = True
.Size = 12
End With
For Each xMail In xSelection
Set xWordDoc = xMail.GetInspector.WordEditor
If xWordDoc.Hyperlinks.Count > 0 Then
For Each xHyperlink In xWordDoc.Hyperlinks
Call ExportToExcelFile(xMail, xHyperlink)
Next
End If
Next
xExcelWs.Columns("A:C").AutoFit
xExcel.Visible = True
End Sub
Sub ExportToExcelFile(curMail As MailItem, curHyperlink As Word.Hyperlink)
Dim xRow As Integer
xRow = xExcelWs.Range("A" & xExcelWs.Rows.Count).End(xlUp).Row + 1
With xExcelWs
.Cells(xRow, 1) = curMail.Subject
.Cells(xRow, 2) = curHyperlink.TextToDisplay
.Cells(xRow, 3) = curHyperlink.Address
End With
End Sub
Neste código, ele extrai todos os hiperlinks, os textos de exibição correspondentes e os assuntos dos emails.

3. Clique em Ferramentas > Referências para abrir a caixa de diálogo Referências – Projeto 1, marque as caixas de seleção Microsoft Excel 16.0 Object Library e Microsoft Word 16.0 Object Library. Clique em OK.


4. Em seguida, posicione o cursor dentro do código VBA, pressione a tecla F5 ou clique no botão Executar para executar o código; agora, uma pasta de trabalho aparecerá e todas as URLs terão sido extraídas nela, e você poderá salvá-la em uma pasta.

Observação: todos os VBAs acima extraem todos os tipos de hiperlinks.
Melhores Ferramentas de Produtividade para Office
Notícia de Última Hora: Kutools para Outlook Lança Versão Gratuita!
Experimente agora a nova versão GRATUITA do Kutools para Outlook, com mais de70 recursos incríveis para você usar PARA SEMPRE! Clique para baixar agora!
📧 Automação de Email: Resposta automática (Disponível para POP e IMAP) / Agendar envio de emails / CC/BCC automático por Regra ao enviar email / Encaminhamento automático (Regra avançada) / Adicionar saudação automaticamente / Dividir automaticamente emails com múltiplos destinatários em mensagens individuais...
📨 Gerenciamento de Email: Recallar Email / Bloquear emails suspeitos por assunto e outros critérios / Excluir Emails Duplicados / Pesquisa Avançada / Organizar Pastas...
📁 Anexos Pro: Salvar em lote / Desanexar em lote / Comprimir em lote / Salvar automaticamente / Desanexar automaticamente / Auto Comprimir...
🌟 Interface Mágica: 😊Mais emojis bonitos e estilosos / Aviso quando emails importantes chegarem / Minimizar Outlook ao invés de fechar...
👍 Recursos com Um Clique: Responder a Todos com Anexos / Emails Anti-Phishing / 🕘Exibir o fuso horário do remetente...
👩🏼🤝👩🏻 Contatos & Calendário: Adicionar contatos em lote a partir de emails selecionados / Dividir um grupo de contatos em grupos individuais / Remover lembrete de aniversário...

