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

  • Harry James
  • 0
  • 3658
  • 1054
Anuncio

Independientemente de si es o no un fanático de Microsoft, una cosa buena que se puede decir sobre los productos de MS Office, al menos, es lo fácil que es integrarlos entre sí..

Solo piense en el poder que viene de tener correos electrónicos entrantes que generan automáticamente nuevas tareas o nuevas citas de 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 hace bien, puede reducir la carga de trabajo de todo el día con una carga de barco simplemente automatizando las cosas de manera inteligente y eficiente.

Si sigue mi escrito aquí, entonces sabe que en el pasado he cubierto cosas como la integración de las funciones del navegador web en Excel Cómo hacer su propio navegador de Internet básico usando VBA Cómo hacer su propio navegador de Internet básico usando VBA Cuando realmente se detiene para pensarlo, 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 los estándares de cualquiera. El concepto de vinculación ..., maximizando automáticamente las ventanas de la aplicación 3 formas de abrir aplicaciones y Windows maximizadas con VB Script [Windows] 3 formas de abrir aplicaciones y Windows maximizadas con VB Script [Windows] Si hay algo que me encanta hacer, es escribir VB scripts. Ya sea que se trate de un archivo de secuencia de comandos de Windows o de una secuencia de comandos VBA dentro de una aplicación, la secuencia de comandos proporciona la capacidad de agregar funcionalidad a las aplicaciones ... o la automatización de actualizaciones de gráficos en Excel Cómo crear gráficos de Excel con actualización automática en tres sencillos pasos Cómo crear Excel con actualización automática Gráficos en tres sencillos pasos Le mostraremos cómo hacer que sus gráficos de Excel se actualicen automáticamente. Simplemente agregue nuevos datos y observe cómo se muestran automáticamente en su gráfico. Es rapido y facil. .

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

Alimentación de 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 rápidamente por correo a alguien (no es tan fácil de hacer con las tareas de Outlook). O tal vez se convierta en parte de un informe más amplio que escribirás en Word.

Cualquiera 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 lista de tareas de Outlook de muestra con 5 tareas restantes que aún no he completado.

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

El código que usará para capturar su lista de tareas y exportarla a Excel en realidad no es tan complicado como podría pensar. El primer paso es conectarse tanto a objetos de Outlook como a objetos de Excel creando las definiciones de variables necesarias. Luego, usando el objeto de libro que ha creado, comience creando el encabezado en su hoja de cálculo.

Dim strReport como String Dim olnameSpace como 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.Worksbook Dim sht As Excel.Worksheet Dim strMyName As String Dim x As Integer Dim y As Integer Establecer exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Delete' exWb.Sheets.Add (strMyName) Establecer olnameSpace = Application.GetNamespace ("MAPI") Establecer taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Establecer tareas = taskFolder.Items strReport = "" 'Crear encabezado exWb.Sheets ("Sheet1"). Celdas (1, 1) = "Asunto" exWb .Sheets ("Sheet1"). Cells (1, 2) = "Fecha de vencimiento" exWb.Sheets ("Sheet1"). Cells (1, 3) = "Porcentaje completo" exWb.Sheets ("Sheet1"). Cells ( 1, 4) = "Estado"

Entonces, así es como se ve la nueva hoja de cálculo. Su 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á a punto de insertar.

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

y = 2 Para x = 1 Para tareas.Conjunto Establecer tsk = tareas.Item (x) 'strReport = strReport + tsk.Subject + ";"' Complete los datos si no tsk.Complete Then 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 a través de toda su lista de elementos de tarea en Outlook, verifica si el elemento ya se completó y, si no lo está, inserta esa información de la tarea en 4 celdas de la hoja de cálculo. Si lo desea, puede 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 recorta el último asunto de la tarea?” Eso no me gusta Así que agreguemos un poco más de código para ajustar automáticamente todas las columnas en la tabla de Excel.

'Ajuste automático de 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 Siguiente sht exWb.Save exWb.Close Establecer exWb = Nothing

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

Entonces, ahora esto es lo que parece la hoja de cálculo terminada.

¿Cuándo configuras el script para que se ejecute? Bueno, lo configuré para que se ejecute en “Application.Close ()” evento, que se ejecuta cuando sale 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 sí solo.

¿Puedes pensar en otros usos geniales para esta técnica? Tal vez disparar automáticamente 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 sorprendente lo que puede lograr con un poco de automatización de secuencias de comandos. Comparta sus propios pensamientos e ideas en la sección de comentarios a continuación.!

Shutterstock




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.