KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Outlook: Como extrair todos os URLs de um e-mail

AutorSun Data de Modificação

Se um e-mail contiver centenas de URLs que precisam de ser extraídos para um ficheiro de texto, copiá-los e colá-los um a um será uma tarefa extremamente tediosa. Este tutorial apresenta macros VBA que lhe permitem extrair rapidamente todos os URLs de um e-mail.

Macro VBA para extrair URLs de um e-mail para um Arquivo de Texto

Macro VBA para extrair URLs de vários e-mails para um ficheiro do Excel

Office Tab – Ative a Edição e Navegação com Separadores no Microsoft Office e torne o trabalho numa tarefa fácil
Desbloqueie Kutools para Outlook agora e desfrute de mais de 100 funcionalidades com acesso ilimitado para sempre
Potencie o seu Outlook 2024 - 2010 ou Outlook 365 com estas funcionalidades avançadas. Aproveite as funcionalidades poderosas do 100+ e eleve a sua experiência de e-mail!

Macro VBA para extrair URLs de um e-mail para um Arquivo de Texto

 

1. Selecione um e-mail do qual pretende extrair os URLs e prima as teclas Alt+F11 para abrir a janela do Microsoft Visual Basic for Applications.

2. Clique em Inserir > Módulo para criar um novo módulo em branco e, de seguida, copie e cole o código seguinte no módulo.

Macro VBA: extraia todos os URLs de um e-mail 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

Este código cria um novo arquivo de texto com o nome do assunto do e-mail e guarda-o no caminho: C:\Users\Public\Downloads, podendo alterá-lo conforme necessário.

passos para extrair todos os URLs de um e-mail

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

passos para extrair todos os URLs de um e-mail
passos para extrair todos os URLs de um e-mail

4. Prima a tecla F5 ou clique no botão Executar para executar o código; irá aparecer um arquivo de texto com todos os URLs já extraídos.

passos para extrair todos os URLs de um e-mail
passos para extrair todos os URLs de um e-mail

Nota: se utilizar o Outlook 2010 e o Outlook 365, certifique-se de marcar também a caixa de verificação Windows Script Host Object Modelno Passo 3 e, em seguida, clique em OK.


Macro VBA para extrair URLs de vários e-mails para um ficheiro do Excel

 

Se pretender extrair URLs de vários e-mails selecionados para um ficheiro do Excel, a macro VBA seguinte pode ajudá-lo.

1. Selecione um e-mail do qual pretende extrair os URLs e prima as teclas Alt+F11para abrir a janela do Microsoft Visual Basic for Applications.

2. Clique em Inserir>Módulopara criar um novo módulo em branco e, em seguida, copie e cole o código seguinte no módulo.

Macro VBA: extrair todos os URLs de vários e-mails para um ficheiro 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, são extraídos todos os hiperligações, bem como o respetivo Texto de Exibição e o Assunto do Email.

passos para extrair todos os URLs de um e-mail

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

passos para extrair todos os URLs de um e-mail
passos para extrair todos os URLs de um e-mail

4. Em seguida, coloque o cursor dentro do código VBA e prima a tecla F5 ou clique no botão Executar para executar o código; irá surgir um livro do Excel com todos os URLs já extraídos, que pode guardar numa pasta.

passos para extrair todos os URLs de um e-mail

Nota: todas as macros VBA acima extraem todos os tipos de hiperligações.


Melhores Ferramentas de Produtividade para o Office

Experimente o totalmente novo Kutools para Outlook com 100+ funcionalidades incríveis!Clique para transferir já!

🤖KUTOOLS AI:Utiliza tecnologia avançada de IA para gerir e-mails sem esforço, incluindo responder, resumir, otimizar, alongar, traduzir e redigir mensagens.

📧Automação de E-mails: Resposta Automática (disponível para POP e IMAP) / Agendar Envio de E-mails / CC/BCC Automático por Regras ao Enviar E-mail / Encaminhamento Automático (regra avançada) / Adicionar Saudação Automaticamente / Dividir Automaticamente E-mails com Múltiplos Destinatários em Mensagens Individuais...

📨Gestão de E-mails: Recallar e-mail / Bloquear e-mails fraudulentos por assunto e outros critérios / Eliminar e-mails duplicados / Pesquisa avançada / Organizar pastas...

📁Anexos Pro: Guardar em Lote / Desanexar em Lote / Comprimir em Lote / Salvar Automaticamente / Desanexar Automaticamente / Auto Comprimir...

🌟Magia da Interface: 😊 Mais Emojis Bonitos e Divertidos / Avisa-o quando chegam e-mails importantes / Minimizar o Outlook em vez de fechá-lo...

👍Maravilhas com um Clique: Responder a Todos com Anexos / E-mails Anti-Phishing / 🕘 Mostrar Fuso Horário – Hora Atual do Remetente...

👩🏼‍🤝‍👩🏻Contactos e Calendário: Criar contactos em lote a partir de e-mails selecionados / Dividir um grupo de contactos em grupos individuais / Remover lembrete de aniversário...

Utilize o Kutools no seu idioma preferido – com suporte para inglês, espanhol, alemão, francês, chinês e mais de 40 idiomas!

Desbloqueie instantaneamente o Kutools para Outlook com um único clique! Não espere mais — transfira já e aumente a sua eficiência!

kutools for outlook features1kutools for outlook features2

🚀 Transferência com um Clique — Obtenha Todos os Extras do Office

Altamente Recomendado: Kutools for Office (5 em 1)

Um clique para transferir cinco instaladoresde uma só vez —Kutools para Excel, Outlook, Word, PowerPointe Office Tab Pro.Clique para transferir já!

  • Conveniência com um clique: Transfira os cinco pacotes de instalação numa única ação.
  • 🚀Pronto para qualquer tarefa no Office: instale os extras que precisa, exatamente quando os precisar.
  • 🧰Incluídos: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools for PowerPoint