Skip to main content

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

Author: Sun Last Modified: 2025-06-04

Si un correo electrónico contiene cientos de URL que necesitan ser extraídas a un archivo de texto, copiar y pegar una por una será una tarea tediosa. Este tutorial introduce VBAs que pueden extraer rápidamente todas las URL de un correo electrónico.

VBA para extraer URL de un correo electrónico a un archivo de texto

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

Office Tab - Habilita la edición y navegación con pestañas en Microsoft Office, haciendo que el trabajo sea pan comido.
Desbloquea la versión gratuita de Kutools para Outlook ahora y disfruta de más de 70 funciones con acceso ilimitado para siempre.
Potencia tu Outlook 2024 - 2010 u Outlook 365 con estas funciones avanzadas. ¡Disfruta de más de 70 funciones poderosas y eleva tu experiencia de correo electrónico!

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 presione las teclas Alt + F11 para habilitar la ventana de Microsoft Visual Basic para Aplicaciones.

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

VBA: extraer 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 nombrado con el asunto del correo electrónico y colocado en la ruta: C:\Users\Public\Downloads, puede cambiarla según sea necesario.

steps on extracting all URLs from one email

3. Haga clic en Herramientas > Referencias para abrir el cuadro de diálogo Referencias – Proyecto 1, marque la casilla Microsoft VBScript Regular Expressions 5.5. Haga clic en Aceptar.

steps on extracting all URLs from one email
steps on extracting all URLs from one email

4. Presione la tecla F5 o haga clic en el botón Ejecutar para ejecutar el código, ahora aparecerá un archivo de texto y todas las URL se habrán extraído en él.

steps on extracting all URLs from one email
steps on extracting all URLs from one email

Nota: si es usuario de Outlook 2010 y Outlook 365, también debe marcar la casilla Windows Script Host Object Model en el Paso 3. Luego haga clic en Aceptar.


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, el siguiente código VBA puede ayudarlo.

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

2. Haga clic en Insertar > Módulo para crear un nuevo módulo en blanco, luego copie y pegue el siguiente código en el 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, los textos de visualización correspondientes y los asuntos de los correos electrónicos.

steps on extracting all URLs from one email

3. Haga clic en Herramientas > Referencias para abrir el cuadro de diálogo Referencias – Proyecto 1, marque las casillas Microsoft Excel 16.0 Object Library y Microsoft Word 16.0 Object Library. Haga clic en Aceptar.

steps on extracting all URLs from one email
steps on extracting all URLs from one email

4. Luego coloque el cursor dentro del código VBA, presione la tecla F5 o haga clic en el botón Ejecutar para ejecutar el código, ahora aparece un libro y todas las URL se han extraído en él, luego puede guardarlo en una carpeta.

steps on extracting all URLs from one email

Nota: todos los VBAs anteriores extraen todos los tipos de hipervínculos.


Las mejores herramientas de productividad para Office

Últimas noticias: ¡Kutools para Outlook lanza su versión gratuita!

Descubre la nueva versión GRATUITA de Kutools para Outlook con más de70 funciones increíbles, ¡para que la disfrutes PARA SIEMPRE! ¡Haz 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 emails.

📧 Automatización de Email: Respuesta automática (Disponible para POP e IMAP) / Programar envío de correos / CC/BCC automático por regla al enviar correo / Reenvío automático (Regla avanzada) / Agregar saludo automáticamente / Dividir automáticamente emails con múltiples destinatarios en mensajes individuales...

📨 Gestión de Email: Recuperar correo electrónico / Bloquear correos fraudulentos por asunto y otros criterios / Eliminar correos electrónicos duplicados / Búsqueda Avanzada / Organizar carpetas...

📁 Adjuntos Pro: Guardar en lote / Desanexar en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto Comprimir...

🌟 Magia en la interfaz: 😊Más emojis bonitos y modernos / Avisos cuando llegan correos importantes / Minimiza Outlook en vez de cerrarlo...

👍 Funciones de un solo clic: Responder a Todos con Adjuntos / Correos electrónicos anti-phishing / 🕘Mostrar la zona horaria del remitente...

👩🏼‍🤝‍👩🏻 Contactos y Calendario: Agregar contactos en lote desde correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños...

Desbloquea al instante Kutools para Outlook con un solo clic. ¡No esperes más, descárgalo ahora y aumenta tu productividad!

kutools for outlook features1 kutools for outlook features2