Come esportare le attività di Outlook in Excel con VBA

Come esportare le attività di Outlook in Excel con VBA / finestre

Che tu sia un fan di Microsoft, una cosa buona che si può dire dei prodotti di MS Office, almeno, è quanto sia facile integrarli l'uno con l'altro.

Basti pensare al potere derivante dall'avere email in arrivo che generano automaticamente nuove attività o nuovi appuntamenti del calendario o che l'attività completata invia automaticamente al proprio capo un'email con il rapporto sullo stato aggiornato dalla descrizione dell'attività.

Se lo fai nel modo giusto, puoi ridurre il carico di lavoro dell'intera giornata da una barca semplicemente automatizzando le cose in modo intelligente ed efficiente.

Se segui la mia scrittura qui, allora sai che in passato ho coperto aspetti come l'integrazione delle funzionalità del browser Web in Excel Come creare il tuo browser Internet di base utilizzando VBA Come creare il tuo browser Internet di base utilizzando VBA Quando ti fermi davvero a pensarci, un browser Internet nella sua forma più semplice non è davvero una applicazione così impressionante. Voglio dire, sì, Internet è sorprendente per gli standard di chiunque. Il concetto di collegamento ... Leggi di più, massimizzando automaticamente le finestre delle applicazioni 3 Modi per aprire Applicazioni e Windows Massimizzate con Script VB [Windows] 3 modi per aprire applicazioni e Windows ottimizzati con Script VB [Windows] Se c'è una cosa che amo fare, è scrivere script VB. Che si tratti di un file di script di Windows o di uno script VBA all'interno di un'applicazione, lo scripting offre la possibilità di aggiungere funzionalità alle applicazioni ... Leggi di più o automatizza gli aggiornamenti dei grafici in Excel Come creare grafici di Excel autoaggiornanti in tre semplici passaggi Come creare autonomamente Aggiornamento di grafici di Excel in tre semplici passaggi Ti mostreremo come aggiornare automaticamente i tuoi grafici di Excel. Aggiungi nuovi dati e guarda come vengono visualizzati automaticamente nel tuo grafico. È veloce e facile. Leggi di più .

Bene, in questo articolo tratterò un altro task di automazione, in realtà quello che ho usato più spesso di recente, per aggiornare automaticamente un foglio di calcolo di Excel con tutte le attività rimanenti attive di Outlook alla fine della giornata.

Alimentazione di attività di Outlook in un foglio di calcolo di Excel

Ci sono molte ragioni per cui potresti volerlo fare. Forse si desidera tenere traccia delle attività non completate su base giornaliera in un formato che è possibile spedire rapidamente a qualcuno (non così facile da fare con le attività di Outlook). O forse diventerà parte di un rapporto più ampio che digiterà in Word.

Qualunque sia il caso, la capacità di acquisire e fornire informazioni sull'attività di Outlook non completate è una cosa utile.

Per questo esempio, ecco il mio elenco di attività di Outlook di esempio con 5 attività rimanenti che non ho ancora completato.

Tutto ciò che faremo qui, è in VBA. In Outlook, si arriva all'editor VBA facendo clic su “Utensili“, poi “macro” e quindi scegliendo il “Visual Basic Editor“.

Il codice che intendi utilizzare per acquisire l'elenco delle attività ed esportarlo in Excel non è in realtà così complicato come potresti pensare. Il primo passaggio consiste nel collegare sia gli oggetti di Outlook sia gli oggetti di Excel creando le definizioni di variabili necessarie. Quindi, utilizzando l'oggetto della cartella di lavoro che hai creato, inizia creando l'intestazione nel foglio di lavoro.

Dim strReport As String Dim olnameSpace As Outlook.NameSpace Dim taskFolder As Outlook.MAPIFolder Dim task As Outlook.Items Dim tsk As Outlook.TaskItem Dim objExcel As New Excel.Application Dim exWb As Excel.Workbook Dim sht As Excel.Worksheet Dim strMyName As String Dim x As Integer Dim y As Integer Set exWb = objExcel.Workbooks.Open ("c: \ temp \ MyActiveTasks.xls") 'exWb.Sheets (strMyName) .Delete' exWb.Sheets.Add (strMyName) Imposta olnameSpace = Application.GetNamespace ("MAPI") Set taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Imposta tasks = taskFolder.Items strReport = "" 'Crea intestazione exWb.Sheets ("Foglio1"). Cells (1, 1) = "Oggetto" exWb .Sheets ("Sheet1"). Cells (1, 2) = "Data di scadenza" exWb.Sheets ("Sheet1"). Cells (1, 3) = "Percentuale completa" exWb.Sheets ("Sheet1"). 1, 4) = "Stato"

Quindi, ecco come appare il nuovo foglio di calcolo. La tua app di Outlook ha appena creato un nuovo file Excel chiamato “MyActiveTasks.xls” nella directory C: \ temp e creato un'intestazione per le attività che si sta per inserire.

Quindi, ora è il momento di estrarre le tue attività e inserirle nel file Excel. Io uso a “y” variabile a partire da due per assicurarsi che la prima riga utilizzata non sia la prima, perché non voglio sovrascrivere l'intestazione.

y = 2 Per x = 1 A tasks.Count Set tsk = tasks.Item (x) 'strReport = strReport + tsk.Subject + ";"' Compila i dati se non 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 .Sheets ("Ryan"). Cells (y, 4) = tsk.Status y = y + 1 End If Next x

Quello che fa questo script è la ricerca attraverso l'intero elenco di elementi di attività in Outlook, controlla se l'elemento è ancora completato e, in caso contrario, inserisce le informazioni sull'attività in 4 celle del foglio di calcolo. Se lo volessi, potresti inserire più informazioni. Basta esplorare quali informazioni sull'attività sono disponibili digitando “tsk.” e poi sfogliando l'elenco delle proprietà che appaiono.

Ora ecco come appare il foglio.

Essendo un po 'perfezionista, c'è ancora un problema. Si noti come la colonna A ha ritagliato l'ultimo oggetto dell'attività?” Non mi piace. Quindi aggiungiamo un po 'di codice in più per il montaggio automatico di tutte le colonne nella tabella Excel.

'Adatta automaticamente tutte le larghezze delle colonne Per ogni sht In ActiveWorkbook.Worksheets sht.Columns ("A"). EntireColumn.AutoFit sht.Columns ("B"). EntireColumn.AutoFit sht.Columns ("C"). EntireColumn.AutoFit sht. Colonne ("D"). EntireColumn.AutoFit Next sht exWb.Save exWb.Close Set exWb = Nothing

Il Salvare e Vicino i metodi in queste ultime poche righe salveranno il foglio e lo chiuderanno in modo che non rimanga bloccato dall'applicazione, altrimenti sarebbe difficile aprire il file Excel fino a quando non chiuderai Outlook.

Quindi, ora ecco come appare il foglio di calcolo finito.

Quando imposti lo script per l'esecuzione? Beh, l'ho impostato per funzionare su “Application.Close ()” evento, che viene eseguito quando si esce da Outlook alla fine della giornata. In questo modo Outlook produrrà il rapporto del foglio di calcolo Excel alla fine della giornata, tutto da solo.

Riesci a pensare ad altri usi interessanti per questa tecnica? Magari automaticamente sparando via e-mail con l'elenco delle attività, o esportandole in un file HTML e trasferendole via FTP sul tuo server web?

Con un po 'di creatività, è incredibile quello che puoi ottenere con un po' di automazione dello scripting. Condividi i tuoi pensieri e idee nella sezione commenti qui sotto!

Shutterstock

Scopri di più su: Microsoft Excel, Microsoft Outlook, Foglio di calcolo, Gestione attività, Programmazione Visual Basic.