Automatisieren von Outlook mithilfe einer Visual Basic-Anwendung

Da Microsoft Outlook die Automatisierung unterstützt, können Sie Outlook mit jedem in Microsoft Visual Basic geschriebenen Programm steuern. Die Automatisierung bietet eine Standardmethode für den Zugriff einer Anwendung auf die Objekte, Methoden, Eigenschaften und Ereignisse anderer Anwendungen, die die Automatisierung unterstützen.

Das Outlook-Objektmodell bietet alle benötigten Funktionen zum Bearbeiten von Daten, die in Outlook-Ordnern gespeichert sind, und es bietet die Möglichkeit, viele verschiedene Aspekte der Outlook-Benutzeroberfläche zu steuern.

Zum Starten einer Outlook-Automatisierungssitzung können Sie entweder die frühe oder späte Bindung verwenden. Die späte Bindung verwendet entweder die GetObject-Funktion von Visual Basic oder die CreateObject-Funktion , um Outlook zu initialisieren. Mit dem folgenden Code wird eine Objektvariable auf das Outlook-Objekt Application festgelegt, das das Objekt auf der obersten Ebene im Outlook-Objektmodell ist. In jedem Automatisierungscode muss zuerst ein Outlook-Objekt vom Typ Application festgelegt werden, um auf alle anderen Outlook-Objekte zugreifen zu können.

Dim objOL as Object 
Set objOL = CreateObject("Outlook.Application")

To use early binding, you first need to set a reference to the Outlook object library. Verwenden Sie den Befehl Verweis im Menü Visual Basic for Applications (VBA)-Tools, um einen Verweis auf die Microsoft Outlook xx.x-Objektbibliothek festzulegen, wobei xx.x die Version von Outlook darstellt, mit der Sie arbeiten. You can then use the following syntax to start an Outlook session.

Dim objOL as Outlook.Application 
Set objOL = New Outlook.Application

Die meisten Programmierlösungen interagieren mit den in Outlook gespeicherten Daten. Outlook speichert alle Informationen als Elemente in Ordnern. Ordner sind in einem oder mehreren Speichern enthalten. Nachdem Sie eine Objektvariable auf das Outlook Application-Objekt festgelegt haben, legen Sie in der Regel ein NameSpace-Objekt so fest, dass es auf MAPI verweist, wie im folgenden Beispiel gezeigt.

Set objOL = New Outlook.Application 
Set objNS = objOL.GetNameSpace("MAPI") 
Set objFolder = objNS.GetDefaultFolder(olFolderContacts)

Nachdem Sie eine Objektvariable festgelegt haben, um einen Verweis auf den Ordner herzustellen, der die Elemente enthält, mit denen Sie arbeiten möchten, verwenden Sie entsprechenden Code, um Ihre Aufgabe durchzuführen (siehe das folgende Beispiel).

Sub CreateNewDefaultOutlookTask() 
    Dim objOLApp As Outlook.Application 
    Dim NewTask As Outlook.TaskItem 
    ' Set the Application object 
    Set objOLApp = New Outlook.Application 
    ' You can only use CreateItem for default items 
    Set NewTask = objOLApp.CreateItem(olTaskItem) 
    ' Display the new task form so the user can fill it out 
    NewTask.Display 
End Sub

Wenn Sie Makros mithilfe von VBA erstellen, können Sie Outlook auf zwei Arten automatisieren. Sie können ein Makro implementieren, das eine neue Instanz des Outlook-Objekts Application erstellt. Die oben dargestellte CreateNewDefaultOutlookTask()-Methode zeigt, wie New Outlook.Application aufgerufen wird, um eine neue Instanz des Application -Objekts aufzurufen.

Vorsicht Diese neue Instanz von Outlook ist nicht vertrauenswürdig und kann den Objektmodellschutz auslösen.

Als Alternative zum Erstellen und Automatisieren einer separaten Instanz von Outlook können Sie mithilfe von VBA ein Makro implementieren, das die aktuelle Instanz von Outlook automatisiert. Hierzu verwenden Sie das Application-Objekt, das in der Umgebung vorhanden ist. Dieses Application -Objekt ist vertrauenswürdig und kann das Auslösen des Objektmodellschutzes verhindern. Weitere Informationen zum Objektmodellschutz finden Sie unter What's New for Developers in Outlook 2007 (Part 1 of 2). Das folgende Beispiel zeigt die CreateAnotherNewDefaultOutlookTask() -Methode, die das Application-Objekt aus der aktuellen Instanz von Outlook verwendet.

Sub CreateAnotherNewDefaultOutlookTask() 
    Dim NewTask As Outlook.TaskItem 
 
    ' You can only use CreateItem for default items 
    Set NewTask = Application.CreateItem(olTaskItem) 
    ' Display the new task form so the user can fill it out 
    NewTask.Display 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.