Entwickeln von Lösungen mit Microsoft Outlook 2002

Veröffentlicht: 30. Dez 2001 | Aktualisiert: 17. Jun 2004

Von Paul Cornell und Acey Bunch

Betrifft: Microsoft Outlook 2002

Zusammenfassung: In diesem Artikel wird erläutert, wie Sie über die Microsoft Outlook 10.0-Objektbibliothek und das Erstellen von benutzerdefinierten Formularen Microsoft Outlook 2002-Lösungen erstellen können.

Auf dieser Seite

Einführung Einführung
Das Outlook-Objektmodell Das Outlook-Objektmodell
Outlook-Formulare Outlook-Formulare
Verteilen von Outlook-Lösungen Verteilen von Outlook-Lösungen
Schlussfolgerung Schlussfolgerung
Weitere Ressourcen Weitere Ressourcen

Einführung

Es gibt eine Reihe von verschiedenen Ansätzen für das Entwickeln von Lösungen mit Microsoft Outlook. Ein wesentlicher Aspekt beim Entwickeln von Outlook-Lösungen - unabhängig vom verwendeten Ansatz - ist die Verwendung der Microsoft Outlook 10.0-Objektbibliothek, die auch als Outlook-Objektmodell bezeichnet wird. Beim Arbeiten mit dem Outlook-Objektmodell verwenden Sie i.d.R. den Visual Basic®-Editor in Outlook und die Programmiersprache Visual Basic für Applikationen (VBA).

Ein Ansatz für die Entwicklung von Outlook-Lösungen besteht darin, interaktive Outlook-Formulare zu entwickeln. Bei diesem Ansatz verwenden Sie den Forms-Designer in Outlook, das Outlook-Formularobjektmodell und die Programmiersprache VBScript (Visual Basic Scripting Edition). (Outlook-Formulare können nicht außerhalb von Outlook entworfen oder verwendet werden.)

Ein anderer Ansatz besteht darin, das Outlook-Objektmodell über andere COM-Entwicklungstools (Component Object Model) zu verwenden, z.B. Microsoft Visual Basic oder Microsoft Visual C++®, indem Sie einen Verweis auf die Microsoft Outlook 9.0-Objektbibliothek (für Microsoft Outlook 2000) oder die Microsoft 10.0-Objektbibliothek (für Microsoft Outlook 2002) einrichten.

Darüber hinaus können Sie die Funktionalität des Outlook-Objektmodells auch unter Verwendung von VBScript über Webseiten aufrufen. Der Code in dieser Kolumne kann für diese Szenarios entsprechend angepasst werden. Sollten sich VBA und VBScript erheblich unterscheiden, stellen wir parallele Codebeispiele bereit.

 

Das Outlook-Objektmodell

Das Outlook-Objektmodell bietet programmtechnischen Zugriff auf verschiedene Outlook-Komponenten und -Features, z.B. die Outlook-Benutzeroberfläche, Ordner, E-Mail-Nachrichten, Adressenlisten und Kontakte. In Outlook 2002 trägt das Objektmodell den Namen Microsoft Outlook 10.0-Objektbibliothek.

Sie können die verschiedenen Elemente des Outlook-Objektmodells anzeigen, indem Sie Outlook starten und zum Aufrufen des Visual Basic-Editors auf das Menü Extras klicken, auf Makro zeigen und auf Visual Basic-Editor klicken oder ALT+F11 drücken. Sobald der Visual Basic-Editor angezeigt wird, können Sie den Objektkatalog verwenden, um das Outlook-Objektmodell zu erkunden, indem Sie im Menü Ansicht auf Objektkatalog klicken oder F2 drücken. Im Objektkatalog können Sie über die Liste Projekt/Bibliothek ein bestimmtes Objektmodell auswählen und anzeigen. In diesem Fall möchten wir das Outlook-Objektmodell anzeigen, das in Abbildung 1 dargestellt ist.

Bild01

Abbildung 1. Das Outlook-Objektmodell, wie im Objektkatalog angezeigt

Wenn Sie Einträge im Fenster Klassen auswählen, werden Elemente, die dieser Klasse zugeordnet sind, im Fenster Elemente angezeigt. Beachten Sie: Wenn Sie ein Element des Objektmodells im Fenster Klassen oder Elemente auswählen, können Sie F1 drücken, um das Outlook-Hilfethema für dieses Element zu öffnen.

Beim Programmieren mit dem Outlook-Objektmodell werden Sie am häufigsten die folgenden Objekte verwenden:

  • Application
    Dies ist das Stammobjekt, das Zugriff auf das restliche Objektmodell gewährt. Bei Verwendung von VBA in Outlook wird das Application-Objekt implizit deklariert, und Sie können wählen, ob Sie das Application-Schlüsselwort verwenden möchten.

  • NameSpace
    Dieses Objekt wird für den Zugriff auf Speicherobjekte verwendet, z.B. Ordner. MAPI ist der einzige verfügbare Namespace, den Sie verwenden können.

  • Item
    Dies ist ein Objekt, das spezielle Outlook-Daten enthält, z.B. eine E-Mail-Nachricht, einen Termin oder einen Kontakt.

  • Folder
    Dieses Objekt dient als standardmäßiger Speichercontainer für Outlook-Elemente.

  • Explorer
    Dieses Objekt dient als Standardschnittstelle für das Anzeigen von Auflistungen von Outlook-Elementen. Es gibt unterschiedliche Explorer für die einzelnen Elementtypen.

  • Inspector
    Dieses Objekt dient als Standardschnittstelle für das Anzeigen der einzelnen Outlook-Elemente. Es wird normalerweise als Formular implementiert.

In der folgenden Tabelle sind einige der anderen Objekte des Outlook-Objektmodells aufgeführt.

Objekte/Auflistungen

Beschreibung

Action, Actions

Eine spezialisierte Aktion, die für ein Element ausgeführt werden kann. So hat z.B. ein E-Mail-Element die Aktionen Antworten, Allen antworten, Weiterleiten und In Ordner antworten.

AddressList, AddressLists, AddressEntry, AddressEntries

Adressenlisten (z.B. Ihre Kontaktliste, Ihr Adressbuch oder das globale Adressbuch), die null oder mehr Adressen enthalten.

Application

Das Anwendungsstammobjekt in Outlook.

AppointmentItem, ContactItem, DistListItem, DocumentItem, JournalItem, MailItem, MeetingItem, NoteItem, PostItem, RemoteItem, ReportItem, TaskItem, TaskRequestAcceptItem, TaskRequestDeclineItem, TaskRequestItem, TaskRequestUpdateItem

Elementtypen, die in Outlook-Ordnern gespeichert sind.

Attachment, Attachments

Dokumentlinks oder Dokumente in Outlook-Elementen.

Exception, Exceptions

Ausnahmen zu Serienzeitplänen für Termine.

Explorer, Explorers, Panes

Die Outlook-Benutzeroberfläche und Fenster in der Outlook-Benutzeroberfläche.

Folders

Alle verfügbaren Outlook-Ordner in einer bestimmten Ebene der Outlook-Ordnerhierarchie.

Inspector, Inspectors, Pages

Ein Fenster, das ein bestimmtes Outlook-Element (z.B. eine E-Mail-Nachricht oder einen Kontakt) enthält, sowie alle Registerkarten innerhalb des Outlook-Elements (z.B. die Registerkarte Details einer Aufgabe).

Items, ItemProperty (neu in Outlook 2002), ItemProperties (neu in Outlook 2002)

Outlook-Elemente (sowie deren integrierte und benutzerdefinierte Eigenschaften) in einem Ordner. Ein Outlook-Element ist die grundlegende Speichereinheit in Outlook und ähnelt einer Datei in einem Ordner. Elemente sind z.B. E-Mail-Nachrichten, Termine, Kontakte, Aufgaben, Journaleinträge, Notizen und bereitgestellte Elemente und Dokumente.

MAPIFolder

Ein Outlook-Ordner, der einen der vielen Outlook-Elementtypen enthält.

NameSpace

Ein abstraktes Stammobjekt für eine Datenquelle. Die einzige unterstützte Datenquelle ist MAPI. Diese ermöglicht den Zugriff auf alle Outlook-Daten, die im Informationsspeicher eines Benutzers abgelegt sind.

OutlookBarGroup, OutlookBarGroups, OutlookBarPane, OutlookBarShortcut, OutlookBarShortcuts, OutlookBarStorage

Die Outlook-Leiste auf der linken Seite des Outlook-Fensters. Diese Leiste enthält Gruppen (z.B. Outlook-Verknüpfungen oder Weitere Verknüpfungen) und Verknüpfungen (z.B. Posteingang oder Arbeitsplatz).

Recipient, Recipients

Der Empfänger einer E-Mail-Nachricht.

RecurrencePattern

Der Serienzeitplan eines Termins oder einer Aufgabe.

Reminder (neu in Outlook 2002), Reminders (neu in Outlook 2002)

Outlook-Erinnerungen, die für Aufgaben, Kontakte und E-Mail-Nachrichten verwendet werden können.

RemoteItem

Eine Remote-E-Mail-Nachricht. Dieses Element enthält nur die Betreffzeile, den Empfangszeitpunkt, den Absender, die Uhrzeit und die ersten 256 Zeichen der E-Mail-Nachricht. Es wird verwendet, um Remotebenutzern genügend Informationen zu vermitteln, damit sie entscheiden können, ob sie die entsprechende E-Mail-Nachricht downloaden.

ReportItem

Ein Bestätigungsbericht für die E-Mail-Zustellung.

Results (neu in Outlook 2002), Search (neu in Outlook 2002)

Outlook-Suchvorgänge und die Ergebnisse von Outlook-Suchvorgängen.

TaskItem, TaskRequestAccept, TaskAcceptDecline, TaskRequestItem, TaskRequestUpdate

Aufgaben und Aufgabenanfragen sowie die Aktionen für das Akzeptieren, Ablehnen oder Aktualisieren dieser Elemente.

UserProperty, UserProperties

Benutzerdefinierte Eigenschaften von Outlook-Elementen.

View (neu in Outlook 2002), Views (neu in Outlook 2002)

Anpassbare Darstellungen von Outlook-Elementen. Zu den Ansichtstypen gehören olTableView, olCalendarView, olCardView, olIconView und olTimeLineView.

Verwenden der Objekte "Application" und "NameSpace"

Wie bei den anderen Office-Objektmodellen verwenden Sie das Application-Objekt als Einstieg in das Outlook-Objektmodell. Da jeweils nur eine Instanz von Outlook ausgeführt werden kann, wird bei Verwendung des New-Schlüsselwortes (oder der CreateObject-Funktion, falls Sie mit VBScript arbeiten) entweder eine neue, verborgene Instanz von Outlook erstellt (falls Outlook nicht ausgeführt wird), oder es wird ein Verweis auf die laufende Instanz zurückgegeben.

Sobald Sie einen Verweis auf die laufende Instanz von Outlook erstellt haben, verwenden Sie das NameSpace-Objekt zusammen mit dem MAPI-Namespacetyp für den Zugriff auf Outlook-Ordner und -Elemente. Beispiel:

' VBA 
... 
Dim objApp As Outlook.Application 
Dim objNameSpace As Outlook.NameSpace 
Set objApp = New Outlook.Application 
Set objNameSpace = objApp.GetNamespace(Type:="MAPI") 
' VBScript 
... 
Dim objApp  
Dim objNameSpace  
Set objApp = CreateObject("Outlook.Application") 
Set objNameSpace = objApp.GetNamespace("MAPI") 
...

Arbeiten mit Outlook-Ordnern und -Elementen

Outlook-Elemente (z.B. E-Mail-Nachrichten, Termine, Aufgaben usw.) sind in Outlook-Ordnern enthalten. Diese ähneln den Dateiordnern im Windows-Dateisystem. Das MAPIFolder-Objekt kann sowohl Outlook-Ordner als auch -Elemente enthalten. Zudem können Sie die Folders-Auflistung verwenden, um MAPIFolder-Objekte auf einer bestimmten Ebene in der Outlook-Ordnerhierarchie zurückzugeben.

Die GetDefaultFolder-Methode gibt basierend auf dem FolderType-Argument den Standardordner aus (so gibt z.B. die olFolderInbox-Konstante den Ordner Posteingang für den derzeit angemeldeten Benutzer zurück). Darüber hinaus gibt es u.a. folgende Standardordner:

  • Den Ordner Kalender (olFolderCalendar), der AppointmentItem-Objekte enthält (Besprechungen, einmalige Termine oder Serienbesprechungen oder -termine).

  • Den Ordner Kontakte (olFolderContacts), der ContactItem-Objekte und DistListItem-Objekte enthält.

  • Den Ordner Gelöschte Objekte (olFolderDeletedItems).

  • Den Ordner Entwürfe (olFolderDrafts).

  • Den Ordner Journal (olFolderJournal), der JournalItem-Objekte enthält.

  • Den Ordner Notizen (olFolderNotes), der NoteItem-Objekte enthält.

  • Den Ordner Postausgang (olFolderOutbox).

  • Den Ordner Gesendete Objekte (olFolderSentMail).

  • Den Ordner Aufgaben (olFolderTasks), der TaskItem-Objekte enthält.

  • Den Ordner Alle öffentlichen Ordner (olPublicFoldersAllPublicFolders).

Der folgende Beispielcode meldet sowohl die Anzahl von Objekten in Ihrem Posteingang, die vor heute gesendet wurden, als auch die Anzahl der heute gesendeten Objekte:

Public Sub InboxSendDates() 
    Dim objApp As Outlook.Application 
    Dim objNameSpace As Outlook.NameSpace 
    Dim objMAPIFolder As Outlook.MAPIFolder 
    Dim objMailItem As Outlook.MailItem 
    Dim lngOldMailCounter As Long 
    Dim lngNewMailCounter As Long 
    Set objApp = New Outlook.Application 
    Set objNameSpace = objApp.GetNamespace(Type:="MAPI") 
    Set objMAPIFolder = _ 
        objNameSpace.GetDefaultFolder(FolderType:=olFolderInbox) 
    For Each objMailItem In objMAPIFolder.Items 
        ' Kommentar der nächsten Zeile entfernen, falls Ergebnisse überprüft werden sollen.  
        ' Debug.Print objMailItem.SentOn & vbTab & _ 
            objMailItem.Subject 
        If objMailItem.SentOn < Date Then 
            lngOldMailCounter = lngOldMailCounter + 1 
        Else 
            lngNewMailCounter = lngNewMailCounter + 1 
        End If 
    Next objMailItem 
    MsgBox Prompt:="Sie haben " & lngOldMailCounter & _ 
        " Objekte im Posteingang, die vor heute gesendet wurden, und " & _ 
        lngNewMailCounter & " Objekte im Posteingang, die heute gesendet wurden." 
End Sub

Für das Arbeiten mit Unterordnern verwenden Sie die Folders-Auflistung, z.B.:

... 
Set objMAPIFolder = _ 
    objNameSpace.GetDefaultFolder(FolderType:=olFolderInbox) _ 
    .Folders("Eilige Objekte") 
...

Für das Erstellen von neuen Outlook-Elementen können Sie die CreateItem-Methode des Application-Objekts verwenden, ohne über das NameSpace-Objekt gehen zu müssen. Der folgende Beispielcode erstellt einen privaten Termin und fügt diesen dem Kalender des aktuellen Benutzers hinzu:

Public Const SUBJECT_MATTER As String = "Abendessen" 
Public Const PLACE As String = "Ristorante Championzone" 
Public Const START_TIME As String = #8/13/2001 6:00:00 PM# 
Public Const DURATION_MINUTES As Long = 90 
Public Const MINUTES_BEFORE_START As Long = 45 
Public Const BODY_TEXT = "Geschenk nicht vergessen!" 
Public Sub AddAppointment() 
    Dim objApp As Outlook.Application 
    Dim objAppointment As Outlook.AppointmentItem 
    Set objApp = New Outlook.Application 
    Set objAppointment = objApp.CreateItem(ItemType:=olAppointmentItem) 
    With objAppointment 
        .Subject = SUBJECT_MATTER 
        .Location = PLACE 
        .Start = START_TIME 
        .Duration = DURATION_MINUTES 
        .ReminderMinutesBeforeStart = MINUTES_BEFORE_START 
        .BusyStatus = olOutOfOffice 
        .Body = BODY_TEXT 
        .Sensitivity = olPrivate 
        .Save 
        .Display 
    End With 
End Sub

Mit der CreateItem-Methode können Sie noch weitere Elemente erstellen, u.a. Kontakte (olContactItem), Verteilerlisten (olDistributionListItem), Journaleinträge (olJournalItem), E-Mail-Nachrichten (olMailItem), Notizen (olNoteItem), Bereitstellungen (olPostItem) und Aufgaben (olTaskItem). Darüber hinaus können Sie die CreateItemFromTemplate-Methode verwenden, um neue Elemente aus Outlook-Vorlagendateien (*.oft) zu erstellen.

Verwenden der Objekte "Inspector" und "Explorer"

Ein Outlook-Explorer entspricht der Outlook-Benutzeroberfläche. Inspektoren sind einzelne Outlook-Elemente, die in der Outlook-Benutzeroberfläche geöffnet werden.

Sie greifen direkt über das Application-Objekt auf die Objekte Inspector und Explorer zu. Der folgende Beispielcode ruft die Outlook-Leiste, die Ordnerliste und das Vorschaufenster auf, sofern sie noch nicht sichtbar sind:

' VBA 
Public Sub EnableExplorerUI() 
    Dim objApp As Outlook.Application 
    Dim objExplorer As Outlook.Explorer 
    Set objApp = New Outlook.Application 
    Set objExplorer = objApp.ActiveExplorer 
    With objExplorer 
        If .IsPaneVisible(Pane:=olFolderList) = False Then 
           .ShowPane Pane:=olFolderList, Visible:=True 
        End If 
        If .IsPaneVisible(Pane:=olOutlookBar) = False Then 
           .ShowPane Pane:=olOutlookBar, Visible:=True 
        End If 
        If .IsPaneVisible(Pane:=olPreview) = False Then 
           .ShowPane Pane:=olPreview, Visible:=True 
        End If 
    End With 
End Sub 
' VBScript 
... 
Dim objApp  
Dim objExplorer  
Set objApp = CreateObject("Outlook.Application") 
Set objExplorer = objApp.ActiveExplorer 
With objExplorer 
    If .IsPaneVisible(1) = False Then 
        .ShowPane 1, True 
    End If 
    If .IsPaneVisible(2) = False Then 
        .ShowPane 2, True 
    End If 
    If .IsPaneVisible(3) = False Then 
        .ShowPane 3, True 
    End If 
End With 
...

Der folgende Beispielcode verwendet die Inspectors-Auflistung, um die Namen aller Outlook-Elemente anzuzeigen, die derzeit geöffnet sind:

Public Sub InspectorList() 
    Dim objInspector As Outlook.Inspector 
    Dim strInspectors As String 
    Set objInspector = Application.ActiveInspector 
    If TypeName(VarName:=objInspector) = "Nothing" Then 
        MsgBox Prompt:="Derzeit sind keine Outlook-Elemente geöffnet." 
        Exit Sub 
    Else 
        For Each objInspector In Application.Inspectors 
            strInspectors = strInspectors & vbCrLf & _ 
                objInspector.Caption 
        Next objInspector 
        MsgBox Prompt:="Geöffnete Outlook-Elemente:" & vbCrLf & _ 
            strInspectors 
    End If 
End Sub

Arbeiten mit der Outlook-Leiste

Die Outlook-Leiste befindet sich auf der linken Seite des Outlook-Fensters und enthält Gruppen (z.B. Outlook-Verknüpfungen) und Verknüpfungen innerhalb dieser Gruppen (z.B. Posteingang).

Sie können die Outlook-Leiste programmtechnisch über die folgenden Objekte und Auflistungen traversieren: OutlookBarPane | OutlookBarStorage | OutlookBarGroups | OutlookBarGroup | OutlookBarShortcuts | OutlookBarShortcut. Die folgende Codezeile fügt beispielsweise der Gruppe Eigene Verknüpfungen in der Outlook-Leiste eine MSDN-Verknüpfung hinzu:

ActiveExplorer.Panes.Item("OutlookBar").Contents.Groups _ 
    .Item("My Shortcuts").Shortcuts _ 
    .Add "https://msdn.microsoft.com", "MSDN"

Arbeiten mit Ansichten

Mit View-Objekten können Sie anpassbare Ansichten erstellen, die Ihnen beim Sortieren, Gruppieren und Anzeigen von Daten unterschiedlichen Typs helfen. Sie können eine Vielzahl von Ansichtstypen verwenden:

  • Der Ansichtstyp Tabelle (olTableView) ermöglicht es Ihnen, Daten in einer einfachen feldbasierten Tabelle anzuzeigen.

  • Der Ansichtstyp Kalender (olCalendarView) ermöglicht es Ihnen, Daten im Kalenderformat anzuzeigen.

  • Der Ansichtstyp Karte (olCardView) ermöglicht es Ihnen, Daten in einer Kartenserie anzuzeigen. Jede Karte zeigt die Informationen an, die im Element enthalten sind. Eine Sortierung ist möglich.

  • Der Ansichtstyp Symbol (olIconView) ermöglicht es Ihnen, Daten als Symbole anzuzeigen, ähnlich wie in einem Windows-Ordner oder Explorer.

  • Der Ansichtstyp Zeitskala (olTimelineView) ermöglicht es Ihnen, eingegangene Daten auf einer anpassbaren linearen Zeitskala anzuzeigen.

Ansichten werden über die XML-Eigenschaft des View-Objekts definiert und angepasst. Mit der XML-Eigenschaft können Sie eine benutzerdefinierte XML-Definition zurückgeben oder festlegen, die die diversen Features einer Ansicht definiert. Die XML-Definition beschreibt die Ansicht unter Verwendung einer Reihe von Tags und Kennwörtern, die den verschiedenen Eigenschaften der Ansicht entsprechen. Der folgende Beispielcode erstellt einen neuen Posteingangsordner und zeigt dann unter Verwendung der XML-Eigenschaft des View-Objekts die XML-Definition für diese Ansicht im Direktfenster von Visual Basic-Editor an.

Sub XMLView() 
'Erstellt eine neue Ansicht und zeigt die XML-Definition 
'im Direktfenster an. 
    Dim olApp As Outlook.Application 
    Dim objViews As Views 
    Dim objView As View 
    Set olApp = Outlook.Application 
    Set objViews = _ 
    olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Views 
    Set objView = objViews.Add _ 
       ("Neue Tabellenansicht", olTableView, _ 
       olViewSaveOptionAllFoldersOfType) 
    Debug.Print objView.XML 
End Sub

Nachfolgend sehen Sie die XML-Definition, wie im Direktfenster in Visual Basic-Editor angezeigt:

Bild02

Abbildung 2. Die XML-Definition einer Ansicht des Ordners "Posteingang" (klicken Sie auf das Bild, um es größer anzuzeigen)

 

Outlook-Formulare

Beim Entwickeln einer Benutzeroberfläche für Ihre Outlook-Lösungen können Sie zwei Arten von Formularen verwenden. Dies ist zum einen ein UserForm, das in der VBA-Umgebung erstellt wird und die Programmiersprache VBA verwendet. Der andere Formulartyp ist ein benutzerdefiniertes Outlook-Formular, über das Sie zwar eines der integrierten Outlook-Formulare (z.B. ein Kontaktformular) anpassen können, das jedoch im Outlook Skript-Editor die Programmiersprache VBScript verwendet.

Verwenden von UserForms

UserForms sind am besten geeignet für benutzerdefinierte Formulare, die keine integrierten Outlook-Elementfeatures anzeigen müssen. Mit UserForms können Sie Ihr Formular erstellen und diesem anschließend über den Formular-Designer verschiedene Steuerelemente hinzufügen. Danach können Sie hinter dem Formular VBA-Code hinzufügen, um auf verschiedene Ereignisse zu reagieren. In Abbildung 3 sehen Sie die diversen Komponenten, die im Visual Basic-Editor für das Erstellen von UserForms verwendet werden. So erstellen Sie ein UserForm:

  1. Öffnen Sie den Visual Basic-Editor (ALT+F11).

  2. Klicken Sie im Menü Einfügen auf UserForm.

  3. Klicken Sie im Menü Ansicht auf Werkzeugsammlung, um die wichtigsten systeminternen Steuerelemente anzuzeigen.

  4. Fügen Sie nach Bedarf Steuerelemente hinzu, und legen Sie deren Eigenschaften fest.

  5. Klicken Sie im Menü Ansicht auf Code, um das Codefenster zu öffnen, und schreiben Sie nach Bedarf Codeanweisungen für die Ereignisse der Formulare und Steuerelemente.

Anmerkung Das UserForm und der entsprechende Programmiercode werden auf dem lokalen Computer in der Datei VbaProject.OTM gespeichert.

Bild03

Abbildung 3. Der Formular-Designer, wie im Visual Basic-Editor angezeigt (klicken Sie auf das Bild, um es größer anzuzeigen)

Verwenden von Outlook-Formularen

Das Erstellen von benutzerdefinierten Outlook-Formularen unterscheidet sich vom Erstellen von UserForms. Für benutzerdefinierte Outlook-Formulare beginnen Sie mit einem vorhandenen Outlook-Formular, z.B. einem Kontakt-, Termin- oder Aufgabenformular. Anschließend passen Sie das Formular mit dem Outlook-Formular-Designer an Ihre Bedürfnisse an, indem Sie z.B. benutzerdefinierte Felder für das Speichern von benutzerdefinierten Informationen hinzufügen. Sie können die Standardformulare anpassen oder basierend auf den Standardformularen ein neues Formular erstellen. So erstellen Sie ein neues benutzerdefiniertes Outlook-Formular:

  1. Zeigen Sie in Outlook im Menü Extras auf Formulare, und klicken Sie auf Ein Formular entwerfen. Daraufhin wird das Dialogfeld Formular entwerfen eingeblendet, wie in Abbildung 4 dargestellt.

    Bild04

    Abbildung 4. Das Dialogfeld "Formular entwerfen"

  2. Wählen Sie im Dialogfeld Formular entwerfen den Formulartyp aus, den Sie anpassen möchten, und klicken Sie auf Öffnen. Daraufhin wird das Formular im Entwurfsmodus angezeigt, wie in Abbildung 5 dargestellt.

    Bild05

    Abbildung 5. Ein Kontaktformular im Entwurfsmodus (klicken Sie auf das Bild, um es größer anzuzeigen)

Sobald Sie das Formular im Entwurfsmodus geöffnet haben, können Sie Änderungen vornehmen, z.B.:

  • Hinzufügen von weiteren Feldern über die Feldauswahl.

  • Ändern der Position von vorhandenen Feldern.

  • Entfernen von vorhandenen Feldern.

  • Hinzufügen von benutzerdefinierten Feldern.

  • Hinzufügen von neuen Steuerelementen, z.B. Kontrollkästchen, Listenfeldern und Befehlsschaltflächen.

  • Ändern der Aktivierreihenfolge der Steuerelemente.

  • Aktivieren von neuen Seiten im Formular, denen benutzerdefinierte Namen gegeben werden.

  • Ändern der Standardeigenschaften.

  • Ändern oder Hinzufügen von neuen Aktionen.

Wie bereits erwähnt, besteht ein wesentlicher Unterschied zwischen Outlook-Formularen und UserForms in der Verwendung der Programmiersprache VBScript für das Automatisieren bestimmter Formularaspekte. Outlook verfügt über einen integrierten VBScript-Editor, den Sie öffnen können, indem Sie im Menü Formular auf Code anzeigen klicken. In Abbildung 6 sehen Sie den Outlook-Skript-Editor:

Bild06

Abbildung 6. Der Outlook-Skript-Editor

Sobald Sie den Outlook-Skript-Editor geöffnet haben, können Sie VBScript-Funktionen und -Prozeduren für die Interaktion mit dem Formular und dem Outlook-Objektmodell erstellen. Darüber hinaus können Sie das Dialogfeld Ereignisbehandlungsroutine einfügen verwenden, um die Funktionsdeklarationen für Standardereignisse einzugeben, die mit dem von Ihnen angepassten Formulartyp verknüpft sind. So fügen Sie eine Ereignisbehandlungsroutine ein:

  1. Klicken Sie im Outlook-Skript-Editor im Menü Skript auf Ereignishandler. Daraufhin wird das Dialogfeld Ereignisbehandlungsroutine einfügen angezeigt, wie in Abbildung 7 dargestellt.

  2. Klicken Sie auf das Ereignis, für das Sie Code schreiben möchten, und klicken Sie auf Hinzufügen, um die Funktionsdeklaration in den Outlook-Skript-Editor einzufügen.

    Bild07

    Abbildung 7. Das Dialogfeld "Ereignisbehandlungsroutine einfügen"

Wenn Sie die Formularänderungen abgeschlossen haben, können Sie das Formular als Outlook-Vorlagendatei (*.oft) speichern oder in der Bibliothek für persönliche oder organisatorische Formulare veröffentlichen.

Ein vollständiger Überblick über das Anpassen von Outlook-Formularen würde den Rahmen dieses Artikels sprengen. Weitere Informationen finden Sie jedoch im Buch Building Applications with Microsoft Outlook Version 2002 (in Englisch) von Microsoft Press.

 

Verteilen von Outlook-Lösungen

Wenn Sie Outlook-Lösungen verteilen, die außerhalb von Outlook erstellt wurden, müssen Sie sicherstellen, dass die Empfänger die richtige Version einer lizenzierten Kopie von Outlook installiert haben. Andernfalls können Sie den Paket- und Weitergabe-Assistenten, das Microsoft Visual Studio®-Installationsprogramm oder andere Arten von Softwareverteilungstools verwenden.

Wenn Sie Outlook-Lösungen verteilen, die gänzlich mit VBA in Outlook erstellt wurden, sollten Sie wissen, dass Outlook nur ein einzelnes VBA-Projekt unterstützt. Dieses Projekt wird einem einzelnen Benutzer und einer einzelnen Instanz von Outlook zugeordnet. Outlook unterstützt nicht die Zuordnung von VBA-Code zu einem einzelnen Outlook-Element. (Für das Schreiben von Codeanweisungen, die einzelnen Outlook-Elementen zugeordnet werden, verwenden Sie VBScript.) Beim Überschreiben der Datei VbaProject.OTM auf einem Computer wird der bisherige Inhalt der Datei zerstört. Die Outlook-VBA-Projektdatei, VbaProject.OTM, befindet sich in einem der folgenden Ordner:

  1. Wenn Sie frühere Versionen von Microsoft Windows® als Microsoft Windows NT® verwenden und Benutzerprofile für mehrere Benutzer eingerichtet wurden, ist die Datei VbaProject.OTM im Ordner C:\Windows\Profile\Benutzername\Anwendungsdaten\Microsoft\Outlook gespeichert. Falls keine Benutzerprofile eingerichtet wurden, befindet sich die Datei VbaProject.OTM im Ordner C:\Windows\Anwendungsdaten\Microsoft\Outlook.

  2. Wenn Sie Windows NT oder höher verwenden, ist die Datei VbaProject.OTM im Ordner C:\Dokumente und Einstellungen\Benutzername\Anwendungsdaten\Microsoft\Outlook gespeichert.

Einen besseren Ansatz für die Verteilung von VBA-basierten Outlook-Lösungen bieten COM-Add-Ins (Component Object Model). Weitere Informationen über das Erstellen von COM-Add-Ins finden Sie im Microsoft Knowledge Base-Artikel HOW TO: Create Office COM Add-Ins by Using VBA and Office Developer (in Englisch).

Wenn Sie einzelne Outlook-Elemente mit beigefügtem VBScript-Code verteilen, können Sie Outlook-Elemente als Outlook-Vorlagendateien (*.oft) speichern und ebenso verteilen wie jeden anderen Dateityp. Wenn Sie Microsoft Exchange Server verwenden, können Sie Outlook-Vorlagendateien auch in einer Bibliothek für organisatorische Formulare hosten, um einen schnelleren Zugriff innerhalb Ihrer Organisation zu ermöglichen.

 

Schlussfolgerung

In diesem Artikel werden einige der grundlegenden Techniken für die Erstellung von Outlook-Lösungen erörtert. Beim Erstellen einer Outlook-Lösung verwenden Sie eine Kombination aus Programmiercode und dem Outlook-Objektmodell, UserForms mit VBA und benutzerdefinierten Outlook-Formularen mit VBScript-Programmiercode. Nach dem Entwickeln Ihrer benutzerdefinierten Outlook-Lösung hängt die verwendete Weitergabemethode von den Anforderungen Ihrer Organisation ab.

 

Weitere Ressourcen

Für weitere Informationen zu den Technologien, die Sie bei der Entwicklung von Outlook-Lösungen verwenden können, besuchen Sie die folgenden Webressourcen: