Hoe exporteer je Outlook-taken naar Excel met VBA

Hoe exporteer je Outlook-taken naar Excel met VBA / ramen

Of je nu een fan van Microsoft bent, tenminste, een goed ding dat gezegd kan worden over MS Office-producten, is hoe gemakkelijk het is om ze allemaal met elkaar te integreren..

Denk maar aan de kracht van binnenkomende e-mails die automatisch nieuwe taken of nieuwe agenda-afspraken genereren, of een voltooide taak automatisch een e-mail sturen naar uw baas met het bijgewerkte statusrapport van de taakomschrijving.

Als u het goed doet, kunt u de werklast van uw hele dag door een bootlading verminderen door de zaken op een intelligente en efficiënte manier te automatiseren.

Als je mijn schrijven hier volgt, weet je dat ik in het verleden dingen als het integreren van webbrowserfuncties in Excel heb behandeld. Hoe maak je je eigen basis internetbrowser Gebruik VBA Hoe maak je je eigen basis internetbrowser Gebruik VBA Wanneer je echt stopt om erover na te denken, een internetbrowser in zijn eenvoudigste vorm is niet echt zo'n indrukwekkend programma. Ik bedoel, ja, het internet is geweldig voor iedereen. Het concept van koppelen ... Lees meer, automatisch maximaliseren van applicatievensters 3 manieren om applicaties te openen en Windows gemaximaliseerd met VB Script [Windows] 3 manieren om applicaties te openen & Windows gemaximaliseerd met VB Script [Windows] Als er iets is dat ik heel graag doe, het zijn VB-scripts schrijven. Of het nu gaat om een ​​Windows Script-bestand of een VBA-script in een toepassing, scripting biedt de mogelijkheid om functionaliteit toe te voegen aan toepassingen ... Lees meer of het bijwerken van grafiekupdates in Excel Zelf bijwerken Excel-grafieken in drie eenvoudige stappen Hoe zelf creëren Excel-grafieken bijwerken in drie eenvoudige stappen We laten u zien hoe u uw Excel-diagrammen zelf kunt bijwerken. Voeg gewoon nieuwe gegevens toe en zie hoe ze automatisch in uw grafiek verschijnen. Het is snel en gemakkelijk. Lees verder .

Nou, in dit artikel ga ik een andere automatiseringstaak behandelen - eigenlijk een die ik recentelijk recentelijk heb gebruikt - om automatisch een Excel-spreadsheet bij te werken met al je overgebleven actieve Outlook-taken aan het eind van de dag.

Outlook-taken naar een Excel-spreadsheet voeren

Er zijn veel redenen waarom u dit misschien wilt doen. Misschien wilt u uw onvoltooide taken dagelijks bijhouden in een indeling die u snel naar iemand kunt mailen (niet zo eenvoudig te doen met Outlook-taken). Of misschien wordt het onderdeel van een groter rapport dat u in Word gaat typen.

Hoe het ook zij, de mogelijkheid om onvoltooide Outlook-taakinformatie vast te leggen en uit te voeren, is nuttig.

Voor dit voorbeeld is dit mijn voorbeeld Outlook takenlijst met 5 resterende taken die ik nog steeds niet heb voltooid.

Alles wat we hier gaan doen, is in VBA. In Outlook komt u bij de VBA-editor door op te klikken “Hulpmiddelen“, dan “macro” en vervolgens het kiezen van de “Visual Basic Editor“.

De code die u gaat gebruiken om uw takenlijst vast te leggen en deze naar Excel te exporteren, is eigenlijk niet zo ingewikkeld als u misschien denkt. De eerste stap is om zowel Outlook-objecten als Excel-objecten aan te sluiten door de benodigde variabeldefinities te maken. Gebruik vervolgens het werkmapobject dat u hebt gemaakt en begin met het maken van de koptekst in uw spreadsheet.

Dim strReport als String Dim olnaamSpace als Outlook.NameSpace Dim taakFolder As Outlook.MAPIFouder Dimtaken als Outlook.Items Dim tsk Als Outlook.TaskItem Dim objExcel als nieuw Excel.Application Dim exWb als Excel.Workbook Dim sht als Excel.Worksheet Dim strMyName As String Dim x As Integer Dim y als Integer Set exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Delete' exWb.Sheets.Add (strMyName) Stel olnameSpace = Application.GetNamespace ("MAPI") Stel taskFolder = olnaamSpace.GetDefaultFolder (olFolderTasks) in Stel taken in = taskFolder.Items strReport = "" 'Maak koptekst exWb.Sheets ("Blad1"). Cellen (1, 1) = "Onderwerp" exWb .Sheets ("Sheet1"). Cellen (1, 2) = "Due Date" exWb.Sheets ("Sheet1"). Cellen (1, 3) = "Percentage voltooid" exWb.Sheets ("Sheet1"). Cellen ( 1, 4) = "Status"

Dus, hier is hoe de nieuwe spreadsheet eruit ziet. Uw Outlook-app heeft zojuist een nieuw Excel-bestand gemaakt met de naam “MyActiveTasks.xls” in de map C: \ temp en maakte een koptekst voor de taken die u wilt invoegen.

Dus nu is het tijd om uw taken uit te pakken en ze in het Excel-bestand in te voegen. Ik gebruik een “Y” variabele begint bij twee om ervoor te zorgen dat de eerste rij die wordt gebruikt niet de eerste is, omdat ik de kop niet wil overschrijven.

y = 2 Voor x = 1 Aan tasks.Count Set tsk = tasks.Item (x) 'strReport = strReport + tsk.Subject + ";"' Gegevens invullen if Not tsk.Complete Then exWb.Sheets ("Ryan") .Cells (y, 1) = tsk.Subject exWb.Sheets ("Ryan"). Cellen (y, 2) = tsk.DueDate exWb.Sheets ("Ryan"). Cellen (y, 3) = tsk.PercentComplete exWb .Sheets ("Ryan"). Cellen (y, 4) = tsk.Status y = y + 1 Einde als volgende x

Wat dit script doet, is het doorzoeken van uw volledige lijst met taakitems in Outlook, controleert of het item al is voltooid en, als dit niet het geval is, voegt het die taakinformatie in 4 cellen van het werkblad in. Als je wilde, zou je meer informatie kunnen invoegen. Onderzoek gewoon welke taakinformatie beschikbaar is door te typen “tsk.” en vervolgens bladeren door de lijst met eigenschappen die worden weergegeven.

Nu, hier is hoe het blad eruit ziet.

Als een beetje een perfectionist, is er nog steeds een probleem. Merk op hoe kolom A het laatste taakonderwerp bijhield?” Dat vind ik niet leuk. Laten we dus een beetje meer code toevoegen om alle kolommen automatisch in de Excel-tabel in te stellen.

'Autofit alle kolombreedten voor elke sht in ActiveWorkbook.Worksheets sht.Columns ("A"). EntireColumn.AutoFit sht.Columns ("B"). EntireColumn.AutoFit sht.Columns ("C") .HogeColumn.AutoFit sht. Kolommen ("D"). EntireColumn.AutoFit Volgende sht exWb.Save exWb.Close Set exWb = Niets

De Opslaan en Dichtbij methoden in die laatste paar regels slaan het blad op en sluiten het zodat het niet geblokkeerd blijft door de applicatie, anders zou het moeilijk zijn om het Excel-bestand te openen totdat je Outlook sloot.

Dus nu is hier hoe de voltooide spreadsheet eruit ziet.

Wanneer stel je het script in om uit te voeren? Wel, ik heb het opgezet om op de “Application.Close ()” gebeurtenis, die wordt uitgevoerd wanneer u Outlook aan het einde van de dag afsluit. Dit zorgt ervoor dat Outlook aan het eind van de dag het Excel-spreadsheetrapport produceert, helemaal op zichzelf.

Kun je nog andere coole toepassingen bedenken voor deze techniek? Misschien automatisch een e-mail afvuren met de takenlijst, of ze uitvoeren naar een HTML-bestand en deze naar uw webserver FTPen?

Met een beetje creativiteit is het verbazingwekkend wat je kunt doen met een beetje scriptingautomatisering. Deel uw eigen gedachten en ideeën in de opmerkingen hieronder!

Shutterstock

Ontdek meer over: Microsoft Excel, Microsoft Outlook, Spreadsheet, Taakbeheer, Visual Basic-programmering.