Cómo exportar automáticamente la información de los correos electrónicos entrantes a un archivo de Excel con Outlook VBA

Comparte ahora:

Muchos usuarios esperan que Outlook pueda exportar automáticamente la información principal de los correos electrónicos entrantes a un archivo de Excel. Este artículo analizará este requisito e introducirá un método rápido a través de Outlook VBA.

A veces, por algunas razones, como las estadísticas de correo, es posible que con frecuencia necesite exportar los correos electrónicos a un archivo de Excel. Generalmente, para los correos electrónicos recibidos existentes, simplemente puede utilizar la función "Importar y Exportar" para exportarlos a Excel de una sola vez. Sin embargo, quizás incluso desee que Outlook pueda exportar automáticamente los correos electrónicos entrantes a Excel tan pronto como lleguen a su buzón. Sin lugar a dudas, Outlook no cuenta con una característica nativa de este tipo. Por lo tanto, debe emplear otros enfoques, como un complemento de terceros o Outlook VBA. Aquí le enseñaremos cómo hacerlo automáticamente con Outlook VBA. Siga leyendo para conocer los pasos y los códigos correspondientes.

Exportación automática de información de correos electrónicos entrantes a un archivo de Excel

  1. En primer lugar, debe crear un archivo de Excel.
  • Abra un nuevo archivo de Excel.
  • Entonces deberías escribir "No." en la celda A1, "Nombre del remitente" en la celda B1, "Dirección de correo electrónico del remitente" en la celda C1 y "Asunto del correo electrónico" en la celda D1 y "Hora de recepción" en la celda E1, como en la siguiente imagen.Crea un archivo de Excel
  • Por último, guárdelo con el nombre y la carpeta que desee.
  1. Después de eso, debe iniciar Outlook.
  2. Luego presione los botones de tecla "Alt + F11", que lo llevarán al editor de VBA.
  3. A continuación, en la ventana emergente, debe hacer doble clic en "ThisOutlookSession" en el lado izquierdo.
  4. Posteriormente, en la ventana del proyecto "ThisOutlookSession", debe copiar y pegar los siguientes códigos VBA en ella.
Public WithEvents objMails As Outlook.Items

Private Sub Application_Startup()
    Set objMails = Outlook.Application.Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub objMails_ItemAdd(ByVal Item As Object)
    Dim objMail As Outlook.MailItem
    Dim strExcelFile As String
    Dim objExcelApp As Excel.Application
    Dim objExcelWorkBook As Excel.Workbook
    Dim objExcelWorkSheet As Excel.Worksheet
    Dim nNextEmptyRow As Integer
    Dim strColumnB As String
    Dim strColumnC As String
    Dim strColumnD As String
    Dim strColumnE As String

    If Item.Class = olMail Then
       Set objMail = Item
    End If
 
    'Specify the Excel file which you want to auto export the email list
    'You can change it as per your case
    strExcelFile = "E:\Email\Email Statistics.xlsx"
 
    'Get Access to the Excel file
    On Error Resume Next
    Set objExcelApp = GetObject(, "Excel.Application")
    If Error <> 0 Then
       Set objExcelApp = CreateObject("Excel.Application")
    End If
    Set objExcelWorkBook = objExcelApp.Workbooks.Open(strExcelFile)
    Set objExcelWorkSheet = objExcelWorkBook.Sheets("Sheet1")
 
    'Get the next empty row in the Excel worksheet
    nNextEmptyRow = objExcelWorkSheet.Range("B" & objExcelWorkSheet.Rows.Count).End(xlUp).Row + 1
 
    'Specify the corresponding values in the different columns
    strColumnB = objMail.SenderName
    strColumnC = objMail.SenderEmailAddress
    strColumnD = objMail.Subject
    strColumnE = objMail.ReceivedTime
 
    'Add the vaules into the columns
    objExcelWorkSheet.Range("A" & nNextEmptyRow) = nNextEmptyRow - 1
    objExcelWorkSheet.Range("B" & nNextEmptyRow) = strColumnB
    objExcelWorkSheet.Range("C" & nNextEmptyRow) = strColumnC
    objExcelWorkSheet.Range("D" & nNextEmptyRow) = strColumnD
    objExcelWorkSheet.Range("E" & nNextEmptyRow) = strColumnE
 
    'Fit the columns from A to E
    objExcelWorkSheet.Columns("A:E").AutoFit
 
    'Save the changes and close the Excel file
    objExcelWorkBook.Close SaveChanges:=True
End Sub

Códigos VBA: exportación automática de información de correos electrónicos entrantes a un archivo de Excel

  1. Posteriormente deberás firmar este código.
  2. Posteriormente, restart Outlook para activar el nuevo proyecto VBA.
  3. Eventualmente, a partir de ahora, todos los correos electrónicos entrantes se exportarán automáticamente al archivo de Excel preestablecido tan pronto como lleguen a la carpeta Bandeja de entrada. El archivo de Excel se verá como la siguiente imagen:Archivo de Excel que contiene información de correos electrónicos entrantes

Evite la dolorosa corrupción de datos PST

Outlook se ha ganado muchos elogios debido a sus diversas funciones. Sin embargo, eso no significa que sea infalible. Todavía puede verse comprometido en cualquier momento. Por ejemplo, si cierra Outlook de forma incorrecta con frecuencia, es muy probable que sus datos PST se pongan en peligro. En este caso, si desea reparar PST datos, debe recurrir a una herramienta con experiencia, como DataNumen Outlook Repair.

Introducción del autor:

Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo recuperar mdf y productos de software de reparación de Outlook. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.