Sådan eksporteres dine Outlook-opgaver til Excel med VBA

  • Mark Lucas
  • 0
  • 2323
  • 277
Reklame

Uanset om du er fan af Microsoft eller ikke, er en god ting, der i det mindste kan siges om MS Office-produkter, hvor let det er at integrere hver af dem med hinanden.

Tænk bare på den magt, der kommer fra at have indgående e-mails automatisk generere nye opgaver eller nye kalenderaftaler, eller at have en afsluttet opgave automatisk e-maile din chef med den opdaterede statusrapport fra opgavebeskrivelsen.

Hvis du gør det rigtigt, kan du skære hele din dags arbejdsbelastning med en bådbelastning bare ved at automatisere tingene på en intelligent og effektiv måde.

Hvis du følger min skrivning her, ved du, at jeg i fortiden har dækket ting som at integrere webbrowserfunktioner i Excel Sådan opretter du din egen basale internetbrowser ved hjælp af VBA Sådan opretter du din egen grundlæggende internetbrowser ved hjælp af VBA, når du virkelig stopper at tænke over det, en internetbrowser i sin enkleste form er egentlig ikke så imponerende en applikation. Jeg mener, ja, Internettet er forbløffende efter nogens standarder. Konceptet med at linke…, automatisk maksimere applikationsvinduer 3 måder at åbne applikationer & Windows maksimeret med VB-script [Windows] 3 måder til at åbne applikationer & Windows maksimeret med VB-script [Windows] Hvis der er en ting, jeg elsker at gøre, er det at skrive VB-scripts. Uanset om det er en Windows-scriptfil eller et VBA-script i et program, giver scripting muligheden for at tilføje funktionalitet til applikationer ... eller automatisere diagramopdateringer i Excel Sådan opretter du selvopdaterende Excel-diagrammer i tre nemme trin Sådan opretter du selvopdaterende Excel Diagrammer i tre nemme trin Vi viser dig, hvordan du opretter dine Excel-diagrammer til selvopdatering. Bare tilføj nye data og se, hvordan de automatisk vises i din graf. Det er hurtigt og nemt. .

Nå, i denne artikel vil jeg dække en anden automatiseringsopgave - faktisk en, som jeg ofte har brugt ofte for nylig - til automatisk at opdatere et Excel-regneark med alle dine resterende aktive Outlook-opgaver i slutningen af ​​dagen.

Fodring af Outlook-opgaver til et Excel-regneark

Der er mange grunde til, at du måske ønsker at gøre dette. Måske vil du spore dine uafsluttede opgaver dagligt i et format, som du hurtigt kan sende til nogen (ikke så let at gøre med Outlook-opgaver). Eller måske bliver det en del af en større rapport, som du skriver i Word.

Uanset hvad tilfældet er, er evnen til at fange og udsende ukomplette Outlook-opgaveoplysninger en nyttig ting.

I dette eksempel er her min eksempel på Outlook-opgaveliste med 5 resterende opgaver, som jeg stadig ikke har udført endnu.

Alt, hvad vi skal gøre her, er i VBA. I Outlook kommer du til VBA-editoren ved at klikke på “Værktøj“, derefter “Makro” og vælg derefter “Visual Basic Editor“.

Den kode, du vil bruge til at fange din opgaveliste og eksportere den til Excel, er faktisk ikke så kompliceret, som du måske tror. Det første trin er at tilslutte både Outlook-objekter og Excel-objekter ved at oprette de nødvendige variabeldefinitioner. Brug derefter det projektmappeobjekt, du har oprettet, ved at oprette overskriften i dit regneark.

Dim strReporter som streng Dim olnameSpace Som Outlook.NameSpace Dim taskFolder Som Outlook.MAPIFolder Dim opgaver som Outlook.Items Dim tsk Som Outlook.TaskItem Dim objExcel Som nyt Excel.Application Dim exWb Som Excel.Workbook Dim sht som Excel.Worksheet Dim strMyName As Streng Dim x Som heltal Dim y som heltal Indstil exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName). Slet' exWb.Sheets.Add (strMyName) Indstil olnameSpace = Application.GetNamespace ("MAPI") Indstil taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Sæt opgaver = taskFolder.Items strReport = "" "Opret overskrift exWb.Sheets (" Sheet1 "). Celler (1, 1) =" Emne "exWb . Ark ("Ark1"). Celler (1, 2) = "Forfaldsdato" exWb.Sheets ("Ark1"). Celler (1, 3) = "Procent fuldført" exWb.Sheets ("Ark1"). Celler ( 1, 4) = "Status"

Så her ser det ud som det nye regneark. Din Outlook-app oprettede lige en ny Excel-fil kaldet “MyActiveTasks.xls” i C: \ temp-biblioteket, og oprettede en header til de opgaver, du skal indsætte.

Så nu er det tid til at udpakke dine opgaver og indsætte dem i Excel-filen. Jeg bruger en “y” variabel, der starter ved to for at sikre, at den første række, der bruges, ikke er den første, fordi jeg ikke vil overskrive overskriften.

y = 2 For x = 1 Til opgaver. Konto Indstil tsk = opgaver.Item (x) 'strReport = strReport + tsk.Subject + ";"' Udfyld data, hvis ikke tsk.Udfyld derefter exWb.Sheets ("Ryan") .Celler (y, 1) = tsk.Subject exWb.Sheets ("Ryan"). Celler (y, 2) = tsk.DueDate exWb.Sheets ("Ryan"). Celler (y, 3) = tsk.PercentComplete exWb . Ark ("Ryan"). Celler (y, 4) = tsk.Status y = y + 1 Ende, hvis næste x

Hvad dette script gør er at søge gennem hele listen over opgaveelementer i Outlook, kontrollere, om emnet er afsluttet endnu, og hvis det ikke er det, indsætter det denne opgaveinformation i 4 celler i regnearket. Hvis du ville, kunne du indsætte flere oplysninger. Bare udforsk hvilke opgaveoplysninger, der er tilgængelige ved at skrive “tsk.” og gennemser derefter listen over egenskaber, der dukker op.

Her er hvordan arket ser ud.

At være lidt af en perfektionist, der er stadig et problem. Bemærk, hvordan kolonne A klippede det sidste opgaveemne?” Jeg kan ikke lide det. Så lad os tilføje en smule mere kode til automatisk at montere alle kolonner i Excel-tabellen.

'Autofit alle kolonnebredder for hver sht I ActiveWorkbook.Worksheets sht.Columns ("A"). HeleColumn.AutoFit sht.Columns ("B"). HeleColumn.AutoFit sht.Columns ("C"). HeleColumn.AutoFit sht. Kolonner ("D"). Hele kolonnen.AutoFit Næste sht exWb.Save exWb.Close Sæt exWb = Intet

Det Gemme og Tæt metoder i de sidste par linjer gemmer arket og lukker det, så det ikke forbliver låst af applikationen, ellers ville det være vanskeligt at åbne Excel-filen, indtil du lukker Outlook.

Så her er det, hvordan det færdige regneark ser ud.

Hvornår indstiller du scriptet til at køre? Nå, jeg satte den op til at køre på “Application.Close ()” begivenhed, der kører, når du afslutter Outlook i slutningen af ​​dagen. Dette får outlook til at fremstille Excel-regnearkrapporten i slutningen af ​​dagen, helt alene.

Kan du tænke på andre seje anvendelser til denne teknik? Måske automatisk afbryde en e-mail med listen over opgaver, eller sende dem til en HTML-fil og FTP-den til din webserver?

Med lidt kreativitet er det forbløffende, hvad du kan trække af med en smule scripting-automatisering. Del dine egne tanker og ideer i kommentarfeltet nedenfor!

Shutterstock




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.