Outlook-Aufgaben

Aufgaben

Outlook-Aufgaben liefern dem gestressten Menschen die Möglichkeit, seine Aufgaben zu verwalten, diese in Kategorien einzusortieren und Termine zur Fertigstellung festzulegen, auf die Outlook zu fest definierten Zeitpunkten aufmerksam macht. Genau wie für Mails, Kontakte und Termine gibt es auch für Aufgaben ein spezielles Outlook-Formular, in das Sie die aufgabenspezifischen Informationen eintragen können (s. Abb. 1).

pic001.tif

Abb. 1: Eine Aufgabe in Outlook (hier in der Version 2007)

Verweis

Als Erstes benötigen Sie, wie beim komfortablen VBA-Zugriff auf andere Anwendungen, einen Verweis auf die Microsoft Outlook x.0 Object Library, wobei x der aktuell auf dem Rechner befindlichen Office-Version entspricht. Den Verweis legen Sie im Dialog Verweise an, den Sie in der VBA-Entwicklungsumgebung mit dem Menübefehl Extras/Verweise öffnen können.

Sie können auch ohne Verweis arbeiten, müssen dabei aber auf den Komfort von IntelliSense verzichten.

Wie schon in vielen anderen Beiträgen erwähnt, ist die optimale Lösung die Programmierung des Zugriffs auf externe Anwendungen unter Verwendung einer Bibliothek und Deklaration der Variablen mit den konkreten Datentypen und – wenn Sie die Anwendung weitergeben oder selbst auf Rechnern mit anderen Office-Versionen einsetzen möchten – die anschließende Umstellung auf Late Binding: Dabei wird der Verweis wieder entfernt, die Datentypen werden bei der Deklaration auf Object umgestellt und gegebenenfalls Konstanten sowie Typdefinitionen ersetzt beziehungsweise deklariert. Im Rahmen dieses Beitrags arbeiten Sie allerdings mit Early Binding.

Zugriff auf die Aufgaben von Outlook

Der Zugriff funktioniert ähnlich wie der Zugriff auf die übrigen Outlook-Objekte. Bereits im Beitrag Outlooktermine im Griff (Shortlink 439) haben wir einen Weg aufgezeigt, um möglichst komfortabel an Outlook und seine Objekte zu gelangen (was sich übrigens leicht auf andere Anwendungen übertragen lässt). Dies greift auch dieser Artikel auf, wie Listing 1 zeigt: Die dortigen Property Get-Funktionen liefern Verweise auf das Outlook.Application-Objekt, auf das MAPI-Namespace-Objekt sowie auf den Aufgabenordner zurück. Dabei können Sie im Code ganz einfach die Bezeichnungen der Property Get-Funktionen verwenden, um auf die jeweiligen Objekte zuzugreifen. Diese werden beim ersten Zugriff angelegt und in einer der mit m beginnenden Objektvariablen gespeichert und können fortan darüber erreicht werden.

Listing 1: öffentliche Eigenschaften liefern unkompliziert Verweise auf Outlook-Elemente.

Option Compare Database
Option Explicit
Dim mOutlook As Outlook.Application
Dim mMAPINamespace As Outlook.NameSpace
Dim mTaskFolder As Outlook.Folder
Public Property Get GetOutlook() As _
Outlook.Application If mOutlook Is Nothing Then On Error Resume Next Set mOutlook = _
CreateObject("Outlook.Application") If Err.Number = 429 Then MsgBox "Outlook konnte nicht gestartet werden." Exit Property End If End If Set GetOutlook = mOutlook End Property Public Property Get GetMAPINamespace() As Outlook.NameSpace If mMAPINamespace Is Nothing Then Set mMAPINamespace = GetOutlook.GetNamespace("MAPI") End If Set GetMAPINamespace = mMAPINamespace End Property Public Property Get GetTaskFolder() As Outlook.Folder If mTaskFolder Is Nothing Then Set mTaskFolder = GetMAPINamespace. _
GetDefaultFolder(olFolderTasks) End If Set GetTaskFolder = mTaskFolder End Property

Das Beste ist, dass die Funktionen aufeinander aufbauen – die MAPI-Namespace-Funktion beinhaltet also das Erzeugen beziehungsweise den Zugriff auf das Outlook.Application-Objekt und so weiter (s. Listing 1). Die Ausgabe etwa aller vorhandenen Termine gestaltet sich damit kinderleicht: Sie müssen einfach nur alle TaskItem-Objekte der Items-Auflistung von GetTaskFolder durchlaufen und die gewünschten Eigenschaften ausgeben (s. Listing 2).

Listing 2: Ausgabe aller Aufgaben-Elemente des Standardaufgabenordners von Outlook

Public Sub AufgabenAusgeben()
 Dim objTaskItem As Outlook.TaskItem
For Each objTaskItem In GetTaskFolder.Items Debug.Print objTaskItem.Subject, objTaskItem.DueDate Next objTaskItem
End Sub

Aufgaben in der Datenbank speichern

Wenn Sie Aufgaben in einer Access-Datenbank speichern und diese mit denen in Outlook synchronisieren möchten, gibt es prinzipiell nur eines zu beachten: Sie müssen dafür sorgen, dass beim Export von Aufgaben von Access nach Outlook geprüft wird, ob eine Aufgabe dort schon vorhanden ist, und diese gegebenenfalls überschreiben und umgekehrt. Die zwar eindeutige, aber nicht beständige Eigenschaft EntryID von Outlook-Objekten wie Terminen, Kontakten, E-Mails oder Aufgaben können Sie dazu nicht heranziehen – sie ändert beim Wechseln des Outlook-Ordners oder beim Synchronisieren mit mobilen Geräten den Wert.

Im Beitrag Outlooktermine im Griff (Shortlink 439) wurde zur eindeutigen Kennzeichnung der Aufgaben eine benutzerdefinierte Eigenschaft verwendet. In diesem Beitrag stellen wir eine weitere Möglichkeit vor – das Speichern des ID-Werts in einer nicht für andere Zwecke verwendeten Eigenschaft. Falls Sie sich also schon einmal im Objektmodell von Outlook umgesehen und sich gefragt haben, wozu man eigentlich eine Eigenschaft namens BillingInformation in Mails, Terminen, Kontakten und Aufgaben benötigt – hier ist die Antwort: nämlich als Speicherort für die ID zur Synchronisation mit in Access gespeicherten Datensätzen mit gleichen Informationen …

Aufgabe mit ID anlegen

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar