Cómo exportar sus tareas de outlook a excel con vba
Independientemente de si usted es un fan de Microsoft, una buena cosa que se puede decir acerca de los productos de MS Office, al menos, es lo fácil que es integrar cada uno de ellos entre sí.
Basta pensar en el poder que viene de tener mensajes de correo electrónico entrantes automáticamente la generación de nuevas tareas o nuevas citas en el calendario, o tener una tarea completada 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, puede reducir la carga de trabajo de todo el día para un bote lleno simplemente mediante la automatización de las cosas de una manera inteligente y eficiente.
Si usted sigue mi forma de escribir aquí, entonces usted sabe que en el pasado he cubierto cosas como la integración navegador web cuenta en Excel, automáticamente maximizar las ventanas de aplicaciones, o la automatización actualizaciones gráfico en Excel.Cómo hacer su propio navegador de Internet básico Uso de VBACómo hacer su propio navegador de Internet básico Uso de VBACuando realmente se detiene a pensar en ello, un navegador de Internet en su forma más simple no es realmente tan impresionante una aplicación. Es decir, sí, la Internet es increíble para los estándares de cualquiera. El concepto de vinculación ...Lee mas
Bueno, en este artículo voy a cubrir otra tarea de automatización - en realidad uno que he utilizado a menudo más recientemente - para actualizar automáticamente una hoja de cálculo de Excel con todas sus tareas de Outlook activos restantes al final del día.
La alimentación de las tareas de Outlook a una hoja de Excel
Hay muchas razones que usted puede querer hacer esto. Tal vez usted quiere realizar un seguimiento de sus tareas sin terminar sobre una base diaria en un formato que puede enviar rápidamente de que alguien (no tan fácil de hacer con las tareas de Outlook). O tal vez que va a formar parte de un informe más amplio que se le escribiendo en la Palabra.
Cualquiera que sea el caso, la capacidad de capturar y salida de información de tareas de Outlook sin terminar es una cosa útil.
Para este ejemplo, aquí está mi muestra la lista de tareas de Outlook con 5 tareas restantes que aún no ha completado todavía.
Vídeo: Importar datos desde Access a Excel con VBA - Capítulo 274
Todo lo que vamos a hacer aquí, es en VBA. En Outlook, se llega al editor de VBA, haga clic en “Herramientas", entonces "Macro”Y luego eligiendo la opción“Editor de Visual Basic“.
El código que se va a utilizar para capturar la lista de tareas y exportarlo a Excel no es en realidad tan complicada como se podría pensar. El primer paso es para conectar a los dos objetos de Outlook y objetos de Excel mediante la creación de las definiciones de las variables necesarias. Luego, utilizando el objeto de libro que has creado, empezar por la creación de la cabecera de la hoja de cálculo.
Dim strReport Como StringDim olnameSpace Como Outlook.NameSpaceDim taskFolder Como tareas Outlook.MAPIFolderDim Como Outlook.ItemsDim tsk Como Outlook.TaskItemDim objExcel Como Nueva Excel.ApplicationDim exWb Como Excel.WorkbookDim SHT Como Excel.WorksheetDim strMyName Como StringDim x Como IntegerDim y IntegerSet Como exWb = objExcel.Workbooks.Open ("c: temp MyActiveTasks.xls") `ExWb.Sheets (strMyName) .Delete` exWb.Sheets.Add (strMyName) Ajuste olnameSpace = Application.GetNamespace ("MAPI") Establecer taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) tareas Set = = taskFolder.ItemsstrReport ""`Crear HeaderexWb.Sheets ("sheet1") .Cells (1, 1) = "Tema"(exWb.Sheets"sheet1") .Cells (1, 2) = "Fecha de vencimiento"(exWb.Sheets"sheet1") .Cells (1, 3) = "Porcentaje completo"(exWb.Sheets"sheet1") .Cells (1, 4) = "Estado"
Por lo tanto, esto es lo que la nueva hoja de cálculo se parece. La aplicación de Outlook acaba de crear un nuevo archivo de Excel llamada “MyActiveTasks.xls” en el directorio C: temp, y creó una cabecera para las tareas que usted está a punto de insertar.
Por lo tanto, ahora es el momento de extraer sus tareas e insertarlos en el archivo de Excel. Yo uso una “y” variable de partida en dos con el fin de hacer que la primera fila que se utiliza no es la primera, porque no desea sobrescribir la cabecera.
Vídeo: Excel Outlook VBA: List Outlook Email Info In Excel
y = 2Porque x = 1 Para tasks.CountSet tsk = tasks.Item (x) `strReport = strReport + tsk.Subject + "- "`Rellene DataIf No tsk.Complete ThenexWb.Sheets ("Ryan") .Cells (y, 1) = tsk.SubjectexWb.Sheets ("Ryan") .Cells (y, 2) = tsk.DueDateexWb.Sheets ("Ryan") .Cells (y, 3) = tsk.PercentCompleteexWb.Sheets ("Ryan") .Cells (y, 4) = tsk.Statusy = y + 1End IfNext x
Lo que esto hace es la escritura búsquedas por toda su lista de elementos de tarea en Outlook, comprueba si el elemento se ha completado todavía, y si no lo es, entonces se introduce esa información de la tarea en 4 celdas de la hoja de cálculo. Si quería, podría insertar más información. Simplemente explorar qué información de la tarea está disponible escribiendo “tsk.” Y luego navegar por la lista de propiedades que aparecen.
Ahora esto es lo que la hoja se parece.
Al ser un poco perfeccionista, todavía hay un problema. Observe cómo la columna A recortado el último tema tarea?”No me gusta eso. Así que vamos a añadir un poco más de código para Autofit todas las columnas en la tabla de Excel.
`Autofit toda la columna widthsFor Cada SHT En ActiveWorkbook.Worksheetssht.Columns ("UN") .EntireColumn.AutoFitsht.Columns ("segundo") .EntireColumn.AutoFitsht.Columns ("do") .EntireColumn.AutoFitsht.Columns ("re") .EntireColumn.AutoFitNext shtexWb.SaveexWb.CloseSet exWb = nada
los Salvar y Cerca métodos en esas últimas líneas se ahorran la sábana y se cierran de modo que no quede bloqueado por la aplicación, de lo contrario sería difícil de abrir el archivo de Excel hasta que cerró Outlook.
Así pues, ahora esto es lo que la hoja de cálculo final se parece.
Vídeo: Curso Práctico Programación VBA Excel 2007: Importar Datos de Access, ADO. Sesión 03. Video 1 de 1.
¿Cuándo se establece la secuencia de comandos para ejecutar? Bueno, me puse para que se ejecute en el “Application.Close ()” evento, que se ejecuta al salir de Outlook al final del día. Esto hará que las perspectivas producir el informe de hoja de cálculo Excel al final del día, por su propia cuenta.
¿Puede pensar en otros usos interesantes para esta técnica? Tal vez de forma automática lanzar un correo electrónico con la lista de tareas, o dar salida a un archivo HTML y FTPing a su web servidor?
Vídeo: Excel Outlook VBA: List Outlook Tasks in Excel
Con un poco de creatividad, es increíble lo que se puede lograr con un poco de automatización de secuencias de comandos. Compartir sus propios pensamientos e ideas en la sección de comentarios!
Shutterstock