Outlook: cómo extraer todas las URL de un correo electrónico
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
- Mejore su productividad en el correo electrónico con tecnología de IA, que le permite responder correos al instante, redactar nuevos mensajes, traducir comunicaciones y mucho más con total eficiencia.
- Automatice el envío de correos electrónicos con CC/BCC automático y Reenvío automático mediante reglas; envíe una Respuesta automática (fuera de la oficina) sin necesidad de un servidor Exchange...
- Reciba recordatorios como Indicar al responder a un correo electrónico en el que estoy en CCO al responder a todos cuando usted está en la lista de CCO, y Recordatorio al olvidar adjuntos para archivos adjuntos olvidados…
- Mejore la eficiencia en el correo electrónico con Responder con archivos adjuntos (todos), saludo automático o fecha y hora en firma o asunto, Responder varios correos electrónicos...
- Simplifique el envío de correos con Recuperar correo electrónico, Herramientas de archivos adjuntos (Comprimir todo, Guardar automáticamente todo...), Eliminar duplicados y Informe rápido...
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.

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.


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.


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.

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.


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!

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!
📧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.


🚀 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