Cum să exportați sarcinile Outlook la Excel cu VBA

Cum să exportați sarcinile Outlook la Excel cu VBA / ferestre

Indiferent dacă sunteți sau nu un fan al Microsoft, un lucru bun care se poate spune despre produsele MS Office este cel puțin cât de ușor este integrarea fiecăruia dintre ele.

Gândiți-vă doar la puterea care vine de la primirea de e-mailuri primite în mod automat noi sarcini sau întâlniri calendar noi, sau având o sarcină completă în mod automat e-mail șeful dvs. cu raportul de stare actualizat din descrierea sarcinii.

Dacă o faci bine, poți să-ți reduci încărcarea de zi cu zi printr-o încărcătură de barcă doar prin automatizarea lucrurilor într-un mod inteligent și eficient.

Dacă urmați scrisul meu aici, atunci știți că în trecut am acoperit lucruri cum ar fi integrarea de caracteristici browser-ul web în Excel Cum să-ți faci propriul browser de Internet de bază folosind VBA Cum de a-ți face propriul browser de Internet de bază Folosind VBA Când te oprești cu adevărat să se gândească la asta, un browser de Internet în forma sa cea mai simplă nu este cu adevărat o aplicație impresionantă. Vreau să spun, da, Internetul este uimitor după standardele cuiva. Conceptul de conectare ... Citește mai mult, maximizarea automată a ferestrelor de aplicație 3 Moduri de deschidere a aplicațiilor și Windows maximizate cu VB Script [Windows] 3 moduri de a deschide aplicații și Windows maximizate cu VB Script [Windows] Dacă există un lucru care îmi place să fac, scriu scripturi VB. Fie că este vorba de un fișier Windows Script sau de un script VBA în cadrul unei aplicații, scripting-ul oferă posibilitatea de a adăuga funcționalitate la aplicații ... Citește mai mult sau automatizează actualizările diagramelor în Excel Cum se creează Auto-Actualizarea diagramelor Excel în trei pași simpli Cum se creează Self- Actualizând diagramele Excel în trei pași simpli, vă vom arăta cum să faceți auto-actualizarea hărților Excel. Doar adăugați date noi și urmăriți modul în care apar automat în graficul dvs. Este rapid și ușor. Citeste mai mult .

Ei bine, în acest articol am de gând să acopere o altă sarcină de automatizare - de fapt una pe care am folosit-o adesea mai recent - să actualizeze automat o foaie de calcul Excel cu toate sarcinile Outlook rămase active la sfârșitul zilei.

Alimentarea sarcinilor Outlook într-o foaie de calcul Excel

Există multe motive pentru care doriți să faceți acest lucru. Poate doriți să urmăriți zilnic sarcinile neterminate, într-un format pe care să-l trimiteți rapid pe cineva (nu atât de ușor de făcut cu sarcinile din Outlook). Sau poate că va face parte dintr-un raport mai amplu pe care îl veți scrie în Word.

Indiferent de situație, abilitatea de a captura și de a afișa informații despre sarcini necompletate din Outlook este un lucru util.

Pentru acest exemplu, iată lista de sarcini din Outlook cu 5 lucrări rămase, pe care încă nu le-am finalizat.

Tot ce vom face aici este în VBA. În Outlook, ajungeți la editorul VBA făcând clic pe “Unelte“, atunci “Macro” și apoi alegerea “Visual Basic Editor“.

Codul pe care îl veți utiliza pentru a vă capta lista de sarcini și pentru a le exporta în Excel nu este de fapt la fel de complicat cum credeți. Primul pas este să conectați atât obiecte Outlook, cât și obiecte Excel, prin crearea definițiilor necesare ale variabilelor. Apoi, utilizând obiectul din registrul de lucru pe care l-ați creat, începeți prin crearea unui antet în foaia de calcul.

Dim strReport ca șir Dim olnameSpace Ca Outlook.NameSpace Dim taskFolder Ca Outlook.MAPIFolder Dim tasks As Outlook.Items Dim tsk Ca Outlook.TaskItem Dim objExcel ca nou Excel.Application Dim exWb Ca Excel.Workbook Dim sht Ca Excel.Worksheet Dim strMyName As Șirul Dim x ca Integer Dim y ca Integer Setați exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Delete' exWb.Sheets.Add (strMyName) Setați olnameSpace = Aplicația.GetNamespace ("MAPI") Setați taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Setați tasks = taskFolder.Items strReport = "" 'Create exwb.Sheets Header ("Sheet1" (1, 2) = "Exact date" exWb.Sheets ("Sheet1") Celule (1, 3) = "Percent Complete" exWb.Sheets 1, 4) = "Stare"

Deci, iată ce arată noul foaie de calcul. Aplicația Outlook a creat doar un nou fișier Excel numit “MyActiveTasks.xls” în directorul C: \ temp, și ați creat un antet pentru sarcinile pe care urmează să le inserați.

Deci, acum este timpul să vă extrageți sarcinile și să le inserați în fișierul Excel. Eu folosesc a “y” variabilă începând cu două, pentru a vă asigura că primul rând care este folosit nu este primul, deoarece nu vreau să înlocuiesc antetul.

y = 2 Pentru x = 1 Pentru sarcini.Count Set tsk = tasks.Item (x) 'strReport = strReport + tsk.Subject +'; "'Completați datele dacă nu tsk.Complete apoi exWb.Sheets (" Ryan " .Cells (y, 1) = tsk.Subject exWb.Sheets ("Ryan") Celule (y, 2) = tsk.DueDate exWb.Sheets ("Ryan") Cells (y, 3) = tsk.PercentComplete exWb .Seturile ("Ryan"). Celule (y, 4) = tsk.Status y = y + 1 Sfarsit Daca urmatorul x

Ceea ce face acest script este căutarea prin întreaga listă de elemente de activitate din Outlook, verifică dacă articolul este încă finalizat și dacă nu este, atunci acesta introduce informațiile respectivei sarcini în 4 celule ale foii de calcul. Dacă doriți, puteți introduce mai multe informații. Doar explorați ce informații despre sarcini sunt disponibile prin tastare “TSK.” și apoi navigând prin lista de proprietăți care apar.

Acum iată ce arată foaia.

Fiind un pic de perfectionist, există încă o problemă. Observați cum coloana A a tăiat ultimul subiect de activitate?” Nu-mi place asta. Deci, să adăugăm un pic mai mult cod la autofit toate coloanele din tabelul Excel.

'Autofit toate lățimile coloanelor Pentru fiecare sht În ActiveWorkbook.Worksheets sht.Columns ("A"). EntireColumn.AutoFit sht.Columns ("B") .Celumns EntireColumn.AutoFit ("C") EntireColumn.AutoFit sht. Coloane ("D"). EntireColumn.AutoFit Următor sht exWb.Save exWb.Close Set exWb = Nimic

Salvați și Închide metodele din ultimele câteva rânduri vor salva foaia și o vor închide astfel încât să nu rămână blocate de aplicație, altfel ar fi dificil să deschideți fișierul Excel până când închideți Outlook.

Deci, acum e ceea ce arată foaia de calcul finită.

Când setați scriptul să ruleze? Am pregătit-o pentru a alerga pe “Application.Close ()” eveniment, care rulează la ieșirea din Outlook la sfârșitul zilei. Acest lucru va face Outlook să producă raportul foaie de calcul Excel la sfârșitul zilei, toate pe cont propriu.

Vă puteți gândi la orice alte utilizări reci pentru această tehnică? Poate arhiva automat un e-mail cu lista de sarcini, sau de ieșire a acestora la un fișier HTML și FTPing-l pe serverul dvs. de web?

Cu puțină creativitate, este uimitor ceea ce puteți face cu un pic de automatizare de scripting. Împărtășiți propriile gânduri și idei în secțiunea de comentarii de mai jos!

Shutterstock

Explorați mai multe despre: Microsoft Excel, Microsoft Outlook, Foaie de calcul, Gestionarea sarcinilor, Programare Visual Basic.