Exportieren von Outlook-Aufgaben nach Excel mit VBA
Unabhängig davon, ob Sie ein Microsoft-Fan sind oder nicht, eine gute Sache, die man zu MS Office-Produkten sagen kann, ist, wie einfach es ist, die einzelnen Produkte miteinander zu integrieren.
Stellen Sie sich vor, dass die eingehenden E-Mails automatisch neue Aufgaben oder neue Kalendertermine generieren oder eine abgeschlossene Aufgabe automatisch an Ihren Chef mit dem aktualisierten Statusbericht aus der Aufgabenbeschreibung senden.
Wenn Sie es richtig machen, können Sie die Arbeitsbelastung des gesamten Tages durch eine Bootladung reduzieren, indem Sie die Dinge auf intelligente und effiziente Weise automatisieren.
Wenn Sie meinem Schreiben hier folgen, wissen Sie, dass ich in der Vergangenheit Dinge wie die Integration von Webbrowser-Funktionen in Excel behandelt habe. So erstellen Sie Ihren eigenen einfachen Internetbrowser mithilfe von VBA So erstellen Sie Ihren eigenen grundlegenden Internetbrowser mithilfe von VBA Wenn Sie wirklich aufhören Um zu überlegen, ist ein Internet-Browser in seiner einfachsten Form nicht wirklich beeindruckend für eine Anwendung. Ich meine, ja, das Internet ist für jedermann erstaunlich. Das Konzept der Verknüpfung… Mehr erfahren, Anwendungsfenster automatisch maximieren 3 Möglichkeiten, Anwendungen zu öffnen und Windows mit VB-Skript zu maximieren [Windows] 3 Möglichkeiten, Anwendungen zu öffnen und Windows zu maximieren, mit VB-Skript [Windows] Wenn es eine Sache gibt, die ich gerne mache, es ist VB-Skripte schreiben. Unabhängig davon, ob es sich um eine Windows-Skriptdatei oder ein VBA-Skript in einer Anwendung handelt, bietet Scripting die Möglichkeit, Anwendungen zu erweitern… Weitere Informationen oder Automatisieren von Diagrammaktualisierungen in Excel Erstellen von selbstaktualisierenden Excel-Diagrammen in drei einfachen Schritten Excel-Diagramme in drei einfachen Schritten aktualisieren Wir zeigen Ihnen, wie Sie Ihre Excel-Diagramme selbst aktualisieren können. Fügen Sie einfach neue Daten hinzu und beobachten Sie, wie sie automatisch in Ihrer Grafik angezeigt werden. Das geht schnell und einfach. Weiterlesen .
In diesem Artikel werde ich eine weitere Automatisierungsaufgabe behandeln - eine, die ich in letzter Zeit häufig verwendet habe -, um eine Excel-Tabelle automatisch mit all Ihren verbleibenden aktiven Outlook-Aufgaben am Ende des Tages zu aktualisieren.
Zuführen von Outlook-Aufgaben in eine Excel-Kalkulationstabelle
Es gibt viele Gründe, warum Sie dies tun möchten. Vielleicht möchten Sie Ihre unvollendeten Aufgaben täglich in einem Format nachverfolgen, das Sie schnell an jemanden verschicken können (mit Outlook-Aufgaben nicht so einfach). Oder vielleicht wird es Teil eines umfangreicheren Berichts, den Sie in Word eingeben.
In jedem Fall ist die Möglichkeit, unvollständige Outlook-Aufgabeninformationen zu erfassen und auszugeben, eine nützliche Sache.
In diesem Beispiel finden Sie hier meine Beispiel-Outlook-Aufgabenliste mit 5 verbleibenden Aufgaben, die ich noch nicht abgeschlossen habe.
Alles, was wir hier tun werden, ist in VBA. In Outlook gelangen Sie durch Klicken auf zum VBA-Editor “Werkzeuge“, dann “Makro” und dann die “Visual Basic-Editor“.
Der Code, den Sie zum Erfassen Ihrer Aufgabenliste und zum Exportieren nach Excel verwenden werden, ist nicht ganz so kompliziert, wie Sie vielleicht denken. Der erste Schritt ist das Einfügen in Outlook-Objekte und Excel-Objekte, indem die erforderlichen Variablendefinitionen erstellt werden. Beginnen Sie dann mit dem von Ihnen erstellten Arbeitsmappenobjekt, indem Sie die Kopfzeile in Ihrer Tabelle erstellen.
Dim strReport As String Dim olnameSpace As Outlook.NameSpace Dim taskFolder As Outlook.MAPIFolder Dim Tsk As Outlook.TaskItem Dim objExcel As new Excel.Anwendung Dim exWb As Excel.Workbook Dim sht As Excel.Worksheet Dim 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) Set olnameSpace = Application.GetNamespace ("MAPI") Set taskFolder = olnameSpace.GetDefaultFolder (olFolderTasks) Set Aufgaben = taskFolder.Items strReport = "" 'Header erstellen exWb.Sheets ("Sheet1"). Cells (1, 1) = "Subject" exWb .Sheets ("Sheet1"). Zellen (1, 2) = "Fälligkeitsdatum" exWb.Sheets ("Sheet1"). Zellen (1, 3) = "Percent Complete" exWb.Sheets ("Sheet1"). Zellen ( 1, 4) = "Status"
So sieht also die neue Tabelle aus. Ihre Outlook-App hat gerade eine neue Excel-Datei erstellt “MyActiveTasks.xls” im Verzeichnis C: \ temp und erstellt einen Header für die Aufgaben, die Sie einfügen möchten.
Jetzt müssen Sie Ihre Aufgaben extrahieren und in die Excel-Datei einfügen. Ich benutze ein “y” Variable, die um zwei beginnt, um sicherzustellen, dass die erste Zeile, die verwendet wird, nicht die erste ist, da ich die Kopfzeile nicht überschreiben möchte.
y = 2 Für x = 1 Für Aufgaben.Zahl Setzen Sie tsk = Aufgaben.Item (x) 'strReport = strReport + tsk.Subject + ";"' Füllen Sie die Daten aus, wenn nicht tsk.Complete Then exWb.Sheets ("Ryan") Zellen (y, 1) = tsk.Subject exWb.Sheets ("Ryan"). Zellen (y, 2) = tsk.DueDate exWb.Sheets ("Ryan"). Zellen (y, 3) = tsk.PercentComplete exWb .Sheets ("Ryan"). Zellen (y, 4) = tsk.Status y = y + 1 End If Next x
Dieses Skript durchsucht die gesamte Liste der Aufgabenelemente in Outlook und prüft, ob das Element noch abgeschlossen ist. Wenn dies nicht der Fall ist, werden die Aufgabeninformationen in vier Zellen der Tabelle eingefügt. Wenn Sie möchten, können Sie weitere Informationen einfügen. Ermitteln Sie einfach, welche Aufgabeninformationen verfügbar sind, indem Sie sie eingeben “tsk.” und dann durch die Liste der Eigenschaften blättern, die angezeigt werden.
So sieht das Blatt aus.
Ein bisschen Perfektionist zu sein, gibt es immer noch ein Problem. Beachten Sie, wie Spalte A den letzten Betreff der Aufgabe abgeschnitten hat?” Das gefällt mir nicht Fügen wir also ein wenig mehr Code hinzu, um alle Spalten in der Excel-Tabelle automatisch anzupassen.
"Alle Spaltenbreiten für jedes Sht in ActiveWorkbook.Worksheets sht.Columns (" A ") übernehmen. EntireColumn.AutoFit sht.Columns (" B "). EntireColumn.AutoFit sht.Columns (" C "). EntireColumn.AutoFit sht. Spalten ("D"). EntireColumn.AutoFit Next sht exWb.Save exWb.Close Set exWb = Nothing
Das sparen und Schließen Methoden in diesen letzten Zeilen speichern das Blatt und schließen es, sodass es nicht von der Anwendung gesperrt bleibt. Andernfalls ist es schwierig, die Excel-Datei zu öffnen, bis Sie Outlook geschlossen haben.
So sieht nun die fertige Tabelle aus.
Wann stellen Sie das Skript so ein, dass es ausgeführt wird? Nun, ich habe es so eingestellt, dass es auf der läuft “Application.Close ()” Ereignis, das ausgeführt wird, wenn Sie Outlook am Ende des Tages beenden. Dies führt dazu, dass Outlook den Excel-Tabellenkalkulationsbericht am Ende des Tages auf eigene Faust erstellt.
Können Sie sich andere coole Anwendungen für diese Technik vorstellen? Vielleicht wird automatisch eine E-Mail mit der Aufgabenliste ausgelöst oder in eine HTML-Datei ausgegeben und per FTP an Ihren Webserver gesendet?
Mit ein wenig Kreativität ist es erstaunlich, was Sie mit etwas Scripting-Automatisierung erreichen können. Teilen Sie Ihre eigenen Gedanken und Ideen in den Kommentaren unten mit!
Shutterstock
Erfahren Sie mehr über: Microsoft Excel, Microsoft Outlook, Tabellenkalkulation, Aufgabenverwaltung, Visual Basic-Programmierung.