KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Oferta de marzo: 20 % de descuento

Outlook: cómo extraer todas las URL de un correo electrónico

AutorSun Fecha de modificación

Si un correo electrónico contiene cientos de URL que deben extraerse a un archivo de texto, copiarlas y pegarlas una por una resultará una tarea tediosa. Este tutorial presenta macros de VBA capaces de extraer rápidamente todas las URL de un mensaje de correo electrónico.

Macro VBA para extraer URL de un correo electrónico a un Archivo de Texto

Macro VBA para extraer URL de varios correos electrónicos a un archivo de Excel

Office Tab - Active la edición y navegación con pestañas en Microsoft Office y haga que el trabajo sea pan comido
Desbloquee Kutools para Outlook ahora y disfrute de más de 100 funciones con acceso ilimitado para siempre
Potencie su Outlook 2024 - 2010 u Outlook 365 con estas funciones avanzadas. ¡Disfrute de 100+ potentes funciones y eleve su experiencia de correo electrónico!

Macro VBA para extraer URL de un correo electrónico a un Archivo de Texto

 

1. Seleccione un correo electrónico del que desee extraer las URL y pulse las teclas Alt+F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. Haga clic en Insertar > Módulo para crear un nuevo módulo en blanco y, a continuación, copie y pegue el siguiente código en él.

VBA: extrae todas las URL de un correo electrónico a un archivo 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

En este código se creará un nuevo archivo de texto cuyo nombre incluirá el asunto del correo electrónico y se guardará en la ruta: C:\Users\Public\Downloads; puede modificarla según sus necesidades.

pasos para extraer todas las URL de un correo electrónico

3. Haga clic en Herramientas > Referencias para abrir el cuadro de diálogo Referencias: Proyecto 1, active la casilla de verificación Microsoft VBScript Regular Expressions 5,5 y haga clic en Aceptar.

pasos para extraer todas las URL de un correo electrónico
pasos para extraer todas las URL de un correo electrónico

4. Pulse la tecla F5 o haga clic en el botón Ejecutar para ejecutar el código; a continuación, aparecerá un archivo de texto con todas las URL ya extraídas.

pasos para extraer todas las URL de un correo electrónico
pasos para extraer todas las URL de un correo electrónico

Nota: si utiliza Outlook 2010 y Outlook 365, active también la casilla de verificación Windows Script Host Object Model en el paso 3 y, a continuación, haga clic en Aceptar.


Macro VBA para extraer URL de varios correos electrónicos a un archivo de Excel

 

Si desea extraer URL de varios correos electrónicos seleccionados a un archivo de Excel, la siguiente macro VBA le ayudará.

1. Seleccione un correo electrónico del que desee extraer las URL y pulse las teclas Alt+F11para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. Haga clic en Insertar>Módulopara crear un nuevo módulo en blanco y, a continuación, copie y pegue el siguiente código en dicho módulo.

VBA: extraer todas las URL de varios correos electrónicos a un archivo de 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

En este código, se extraen todos los hipervínculos junto con el Mostrar Texto correspondiente y el Asunto del correo electrónico.

pasos para extraer todas las URL de un correo electrónico

3. Haga clic en Herramientas > Referencias para abrir el cuadro de diálogo Referencias: Proyecto 1, active las casillas de verificación Microsoft Excel 16,0 Object Library y Microsoft Word 16,0 Object Library y, a continuación, haga clic en Aceptar.

pasos para extraer todas las URL de un correo electrónico
pasos para extraer todas las URL de un correo electrónico

4. A continuación, sitúe el cursor dentro del código VBA y pulse la tecla F5 o haga clic en el botón Ejecutar para ejecutar el código. ¡Enseguida aparecerá un libro de trabajo con todas las URL ya extraídas, listo para guardarlo en la carpeta que desee!

pasos para extraer todas las URL de un correo electrónico

Nota: Todas las macros VBA anteriores extraen todo tipo de hipervínculos.


Las mejores herramientas de productividad para Office

¡Descubra el nuevo Kutools para Outlook con 100+ funciones increíbles!¡Haga clic para descargar ahora!

🤖KUTOOLS AI:Utiliza tecnología avanzada de IA para gestionar correos electrónicos sin esfuerzo, incluyendo responder, resumir, optimizar, ampliar, traducir y redactar correos.

📧Automatización de correo electrónico: Respuesta automática (disponible para POP e IMAP) / Programar el envío de correos electrónicos / CC/BCC automático según reglas al enviar correos / Reenvío automático (regla avanzada) / Añadir saludo automáticamente / Dividir automáticamente los correos con múltiples destinatarios en mensajes individuales...

📨Gestión de correo electrónico: Recupera tus correos electrónicos / Bloquea correos fraudulentos por asunto y otros criterios / Elimina correos electrónicos duplicados / Búsqueda avanzada / Organiza tus carpetas

📁Archivos adjuntos Pro: Guardar en lote / Desvincular en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto comprimir...

🌟Magia de la interfaz: 😊Más emojis bonitos y modernos / Le avisa cuando llegan correos importantes / Minimiza Outlook en lugar de cerrarlo

👍Maravillas con un solo clic: Responder a Todos con Adjuntos / Correos electrónicos antiphishing / 🕘 Mostrar zona horaria: hora actual del remitente...

👩🏼‍🤝‍👩🏻Contactos y calendario: Crear contactos en lote a partir de correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños...

Utilice Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y más de 40 idiomas adicionales.

Desbloquee Kutools para Outlook al instante con un solo clic. ¡No espere más: descárguelo ahora y potencie su eficiencia!

kutools for outlook features1kutools for outlook features2

🚀 Descarga con un solo clic — Obtenga todos los complementos de Office

Muy recomendado: Kutools for Office (5 en 1)

Un solo clic para descargar cinco instaladoresa la vez —Kutools para Excel, Outlook, Word, PowerPointy Office Tab Pro.¡Haga clic para descargar ahora!

  • Comodidad con un solo clic: Descargue los cinco paquetes de instalación de una sola vez.
  • 🚀Listo para cualquier tarea de Office: Instale los complementos que necesite, justo cuando los necesite.
  • 🧰Incluido: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools for PowerPoint