Cómo exportar sus tareas de Outlook a Excel con VBA

Cómo exportar sus tareas de Outlook a Excel con VBA / Windows

Sea o no un fanático de Microsoft, una cosa buena que se puede decir acerca de los productos de MS Office, al menos, es lo fácil que es integrar cada uno de ellos..

Solo piense en el poder que tiene el hecho de que los correos electrónicos entrantes generen automáticamente nuevas tareas o nuevas citas en el calendario, o que una tarea completada envíe automáticamente un correo electrónico a su jefe con el informe de estado actualizado de la descripción de la tarea..

Si lo haces bien, puedes reducir la carga de trabajo de todo el día en un barco cargado simplemente automatizando las cosas de una manera inteligente y eficiente..

Si sigue mis instrucciones aquí, entonces sabrá que en el pasado cubrí aspectos como la integración de las funciones del navegador web en Excel. Cómo crear su propio navegador de Internet básico con VBA. Cómo hacer su propio navegador de Internet básico con VBA. Pensándolo bien, un navegador de Internet en su forma más simple no es realmente una aplicación tan impresionante. Quiero decir, sí, Internet es increíble para todos los estándares. El concepto de vinculación ... Leer más, maximizando automáticamente las ventanas de la aplicación 3 maneras de abrir aplicaciones y Windows maximizado con VB Script [Windows] 3 maneras de abrir las aplicaciones y Windows maximizado con VB Script [Windows] Si hay una cosa que me encanta hacer, es escribir scripts VB. Ya sea que se trate de un archivo de Windows Script o VBA dentro de una aplicación, los scripts brindan la capacidad de agregar funcionalidad a las aplicaciones ... Leer más, o automatizar las actualizaciones de gráficos en Excel Cómo crear gráficos de Excel que se actualicen automáticamente en tres sencillos pasos Cómo crear uno mismo Actualización de gráficos de Excel en tres sencillos pasos Le mostraremos cómo hacer que sus gráficos de Excel se actualicen automáticamente. Solo agregue nuevos datos y observe cómo aparecen automáticamente en su gráfico. Es rápido y fácil. Lee mas .

Bueno, en este artículo cubriré otra tarea de automatización, en realidad una que he usado más a menudo, para actualizar automáticamente una hoja de cálculo de Excel con todas las tareas de Outlook activas restantes al final del día..

Alimentar tareas de Outlook a una hoja de cálculo de Excel

Hay muchas razones por las que puede querer hacer esto. Tal vez desee realizar un seguimiento diario de sus tareas pendientes en un formato que pueda enviar por correo rápidamente a alguien (no es tan fácil hacerlo con las tareas de Outlook). O tal vez se convierta en parte de un informe más grande que se escribirá en Word.

Cualquiera que sea el caso, la capacidad de capturar y generar información de tareas de Outlook incompleta es algo útil.

Para este ejemplo, aquí está mi ejemplo de lista de tareas de Outlook con 5 tareas restantes que todavía no he completado.

Todo lo que vamos a hacer aquí, está en VBA. En Outlook, puedes acceder al editor de VBA haciendo clic en “Herramientas“, entonces “Macro” y luego elegir el “Editor de Visual Basic“.

El código que utilizará para capturar su lista de tareas y exportarlo a Excel no es tan complicado como podría pensar. El primer paso es conectar los objetos de Outlook y los objetos de Excel creando las definiciones de variables necesarias. Luego, utilizando el objeto de libro de trabajo que ha creado, comience por crear el encabezado en su hoja de cálculo..

Dim strReport As String Dim olnameSpace As Outlook.NameSpace Dim taskFolder As Outlook.MAPIFolder Dim tareas como Outlook.Items Dim tsk As Outlook.TaskItem Dim objExcel As New Excel.Application Dim exWb As Excel.Workbook Dim sht As Excel.Worksheet Dim strMyNameName Cadena Dim x As Integer Dim y As Integer set exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Delete' exWb.Sheets.Add (strMyName) Set olnameSpace = Application.GetNamespace ("MAPI") Set taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Set tasks = taskFolder.Items strReport = "" 'Create Header exWb.Sheets ("Sheet1"). Cells (1, 1) = "Subject" exWb . Hojas ("Hoja1"). Celdas (1, 2) = "Fecha de vencimiento" exWb.Fichas ("Hoja1"). Celdas (1, 3) = "Porcentaje completado" exWb.Fichas ("Hoja1"). Celdas ( 1, 4) = "Estado"

Entonces, aquí está cómo se ve la nueva hoja de cálculo. Tu aplicación de Outlook acaba de crear un nuevo archivo de Excel llamado “MyActiveTasks.xls” en el directorio C: \ temp, y creó un encabezado para las tareas que estás a punto de insertar.

Entonces, ahora es el momento de extraer sus tareas e insertarlos en el archivo de Excel. Uso un “y” la variable que comienza en dos para asegurarse de que la primera fila que se usa no es la primera, porque no quiero sobrescribir el encabezado.

y = 2 Para x = 1 Para tareas. Cuenta Establecer tsk = tareas. Artículo (x) 'strReport = strReport + tsk.Subject + ";"' Complete los datos si no es tsk.Complete Luego exWb.Sheets ("Ryan") .Cells (y, 1) = tsk.Subject exWb.Sheets ("Ryan"). Cells (y, 2) = tsk.DueDate exWb.Sheets ("Ryan"). Cells (y, 3) = tsk.PercentComplete exWb . Hojas ("Ryan"). Celdas (y, 4) = tsk. Estado y = y + 1 Fin si siguiente x

Lo que hace este script es buscar en su lista completa de elementos de tareas en Outlook, verifica si el elemento se ha completado todavía y, si no lo está, luego inserta esa información de tareas en 4 celdas de la hoja de cálculo. Si quieres, puedes insertar más información. Simplemente explore qué información de tarea está disponible escribiendo “tsk.” y luego navegar a través de la lista de propiedades que aparecen.

Ahora, así es como se ve la hoja.

Siendo un poco perfeccionista, todavía hay un problema. Observe cómo la columna A recortó el tema de la última tarea?” No me gusta eso Así que vamos a agregar un poco más de código para ajustar automáticamente todas las columnas en la tabla de Excel.

'Ajuste automáticamente todos los anchos de columna para cada sht en ActiveWorkbook.Worksheets sht.Columns ("A"). EntireColumn.AutoFit sht.Columns ("B"). EntireColumn.AutoFit sht.Columns ("C"). EntireColumn.AutoFit sht. Columnas ("D"). EntireColumn.AutoFit Next sht exWb.Guardar exWb.Cerrar Establecer exWb = Nada

los Salvar y Cerrar los métodos en esas últimas líneas guardarán la hoja y la cerrarán para que no quede bloqueada por la aplicación, de lo contrario sería difícil abrir el archivo de Excel hasta que cierre Outlook.

Entonces, aquí está el aspecto de la hoja de cálculo terminada..

¿Cuándo configuras el script para que se ejecute? Bueno, lo configuré para correr en el “Aplicación.Cerrar ()” evento, que se ejecuta al salir de Outlook al final del día. Esto hará que Outlook produzca el informe de la hoja de cálculo de Excel al final del día, todo por su cuenta..

¿Puedes pensar en otros usos interesantes para esta técnica? Tal vez automáticamente disparar un correo electrónico con la lista de tareas, o enviarlos a un archivo HTML y enviarlo por FTP a su servidor web?

Con un poco de creatividad, es increíble lo que puedes lograr con un poco de automatización de scripting. Comparte tus propios pensamientos e ideas en la sección de comentarios a continuación!

Shutterstock

Obtenga más información sobre: ​​Microsoft Excel, Microsoft Outlook, hoja de cálculo, administración de tareas, programación de Visual Basic.