INHALT
Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
TEIL 1 Erste Schritte mit Office XP Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Typografische Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Codebeispiele und Programmierstil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Verwenden der Codebeispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Neuigkeiten in Office XP Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Einrichten der Office Developer-Entwurfsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Installieren von Developer Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Einrichten der Serverumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Einrichten des Servers mit Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Konfigurieren von Serverkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Einrichten des Servers mit SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Installieren von Serverkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
TEIL 2 Entwickeln von Office Developer-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
KAPITEL 1 Entwerfen von Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Entwurfsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Kundenwünsche? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Kundenanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Erster Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Erstellen eines Prototyps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
iv Microsoft Office XP Entwicklerhandbuch
Zu verwendende Technologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Workflow: Hintergründe zur Technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Workflow-Datenspeicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Exchange 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Serversicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Back-End-Berechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Datenspeicherort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Vorteile von Excel bzw. einer relationalen Datenbank beim Speichern von Daten . . . . . . . . . . 28
Entwerfen einer relationalen Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Überlegungen zu Dateneingaben und Benutzereingaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Verwenden von Access zum Erstellen einer Dateneingabekomponente . . . . . . . . . . . . . . . 30
Überprüfen von Benutzereingaben aus Excel-, Word- und PowerPoint-basiertenAnwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Abrufen, Analysieren und Darstellen von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Erstellen von Add-Ins, Assistenten und Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Digital Dashboard und Webparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Überlegungen zum Entwurf der Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Entwerfen von wieder verwendbarem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Sicherheitsaspekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Testen der Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Weitergeben von Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
KAPITEL 2 Entwickeln von Office-Anwendungen mithilfe von VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Vorteile der Office-Programmierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Objekte und Objektmodelle von Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Entwicklung einer integrierten Office-Projektmappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Objekte, Auflistungen und Objektmodelle: technischer Hintergrund . . . . . . . . . . . . . . . . . . . . . . . . 47
Inhalt v
Durch ein Objektmodell offen gelegte Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Application-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Navigieren durch die Objekthierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Verknüpfungsaccessoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Verweisen auf Dokumente und Arbeitsmappen mit momentan ausgeführtem Code. . . . . . . 53
Parent-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Erstellen von eigenen Objekten und Objektmodellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Auflistungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Hinzufügen von Objekten zu einer Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Arbeiten mit Objekten in einer Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Eigenschaften und Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Reagieren auf dokumentbezogene Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Reagieren auf anwendungsbezogene Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Verwenden des Objektbrowsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Arbeiten mit dem Outlook-Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Automatisierung von Office-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Festlegen von Verweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Deklaration von Objektvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Deklarieren mit Verweisauflösung zur Kompilierungszeit . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Deklarieren mit Verweisauflösung zur Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Erstellen von Objektvariablen zum Automatisieren einer anderen Office-Anwendung . . . . . . . 71
Automatisieren des Visual Basic-Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Set-Anweisung und New-Schlüsselwort bei der Automatisierung . . . . . . . . . . . . . . . . . . . . . . . 76
Einfachverwendungs- kontra Mehrfachverwendungsanwendungen . . . . . . . . . . . . . . . . . . . . . 79
Verwenden der Funktionen "CreateObject" und "GetObject" . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Arbeiten mit Startcode enthaltenden Dokumenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Herunterfahren von durch Automatisierung erstellten Objekten . . . . . . . . . . . . . . . . . . . . . . . . 87
vi Microsoft Office XP Entwicklerhandbuch
Arbeiten mit Office-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Arbeiten mit Microsoft Access-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Grundlegendes zum Application-Objekt von Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Arbeiten mit den Einstellungen im Dialogfeld "Optionen". . . . . . . . . . . . . . . . . . . . . . . . . . 91
Grundlegendes zu Starteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Integrierte Access-Funktionen und -Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Aufrufen von integrierten Funktionen und Methoden von Access ohneVerwendung einer Application-Objektvariablen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Erstellen, Öffnen und Schließen einer Access-Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . 96
CurrentData-Objekt und CurrentProject-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Printer-Objekt und Printers-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
AddItem-Objekt und RemoveItem-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Speicherungsmodell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Arbeiten mit dem Screen-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Arbeiten mit dem DoCmd-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Arbeiten mit der Modules-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Arbeiten mit der References-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Arbeiten mit Berichten, Formularen und Datenzugriffsseiten . . . . . . . . . . . . . . . . . . . . . . . . . 104
Arbeiten mit PivotView-Berichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Verweisen auf geöffnete Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Formularen und Berichten zugrunde liegende Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Angeben von Zeichenfolgenkriterien mithilfe von Variablen in Code . . . . . . . . . . . . 109
Arbeiten mit Steuerelementen in Formularen und Berichten . . . . . . . . . . . . . . . . . . . . . . . 111
Controls-Auflistung für Formulare und Berichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Unterformular- und Unterbericht-Steuerelemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Listenfeld- und Kombinationsfeld-Steuerelemente in Formularen . . . . . . . . . . . . . . . 113
Verwenden einer benutzerdefinierten Funktion zum Auffüllen einesListenfeld- oder Kombinationsfeld-Steuerelements . . . . . . . . . . . . . . . . . . . . . . . 115
Hinzufügen neuer Werte zu einem Kombinationsfeld-Steuerelement . . . . . . . . . 115
Ermöglichen einer Mehrfachauswahl in einem Listenfeld-Steuerelement . . . . . . 117
Inhalt vii
Arbeiten mit Datenzugriffsseiten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Erstellen, Speichern und Schließen von Datenzugriffsseiten. . . . . . . . . . . . . . . . . . . . 118
Öffnen und Bearbeiten von Datenzugriffsseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Verwenden des Microsoft Skript-Editors mit Datenzugriffsseiten . . . . . . . . . . . . . . . 124
Sicherheitsüberlegungen für Datenzugriffsseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Access und XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Arbeiten mit Microsoft Excel-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Grundlegendes zum Application-Objekt von Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Verknüpfungen mit aktiven Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Grundlegendes zum Workbook-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Erstellen, Speichern, Öffnen und Schließen von Workbook-Objekten. . . . . . . . . . . . . . . . 131
Hinweis zum Arbeiten mit Arbeitsmappen über Automatisierung . . . . . . . . . . . . . . . . . . . 133
Grundlegendes zum Worksheet-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Verweisen auf ein Worksheet-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Hinzufügen, Löschen, Kopieren und Verschieben eines Worksheet-Objekts . . . . . . . . . . 136
Grundlegendes zum Range-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Range-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Eigenschaften "ActiveCell" und "Selection". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Makroaufzeichnung und das Selection-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Verwenden der Eigenschaften "CurrentRegion" und "UsedRange" . . . . . . . . . . . . . . . . . . 143
Verwenden der Cells-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Verwenden der Offset-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Arbeiten mit Microsoft FrontPage-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Grundlegendes zum FrontPage-Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Grundlegendes zum Application-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Grundlegendes zum Seitenobjektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Arbeiten mit Microsoft Outlook-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Grundlegendes zu den Objekten "Application" und "NameSpace" . . . . . . . . . . . . . . . . . . . . . 153
Arbeiten mit Outlook-Ordnern und -Elementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Grundlegendes zu den Objekten "Explorer" und "Inspector" . . . . . . . . . . . . . . . . . . . . . . . . . . 162
viii Microsoft Office XP Entwicklerhandbuch
Grundlegendes zu VBA in Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Grundlegendes zu Ereignissen in Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Anwendungsbezogene Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Elementbezogene Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Arbeiten mit Microsoft PowerPoint-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Grundlegendes zum Application-Objekt von PowerPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Arbeiten mit dem Presentation-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Arbeiten mit geöffneten Präsentationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Arbeiten mit vorhandenen Präsentationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Erstellen einer neuen Präsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Formatieren einer Präsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Starten einer Bildschirmpräsentation aus einer Präsentation . . . . . . . . . . . . . . . . . . . . . . . 172
Arbeiten mit PowerPoint-Folien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Arbeiten mit der Slides-Auflistung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Arbeiten mit Slide-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Arbeiten mit Formen auf Folien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Hinzufügen von Formen zu Folien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Positionieren von Formen auf Folien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Arbeiten mit Text in einer Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Arbeiten mit Microsoft Project-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Grundlegendes zum Microsoft Project-Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Eigenschaften des Project-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Methoden des Project-Objekts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Grundlegendes zum Application-Objekt von Microsoft Project . . . . . . . . . . . . . . . . . . . . . . . 183
Arbeiten mit Microsoft Visio-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Grundlegendes zum Visio-Objektmodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Verwenden der Visio-Objekttypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Abrufen und Freigeben von Visio-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Grundlegendes zum Application-Objekt von Visio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Inhalt ix
Arbeiten mit Microsoft Word-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Grundlegendes zu anwendungsbezogenen Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Arbeiten mit dem Application-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Arbeiten mit den Einstellungen im Dialogfeld "Optionen". . . . . . . . . . . . . . . . . . . . . . . . . 191
Verwenden des Options-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Verwenden der Objekte "View" und "Dialog". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Arbeiten mit Word-Dialogfeldern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Ändern von integrierten Befehlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Document-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Arbeiten mit dem Document-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Öffnen, Erstellen, Speichern und Schließen von neuen Dokumenten. . . . . . . . . . . . . . . . . 198
Arbeiten mit Dokumentinhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Range-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Erstellen, Definieren und Neudefinieren eines Bereichs . . . . . . . . . . . . . . . . . . . . . . . 201
Arbeiten mit Text in einem Range-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Ermitteln der Position eines Bereichs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Einfügen von Text in einen Bereich. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Grundlegendes über Absatzmarken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Selection-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Selection-Objekt kontra Range-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Arbeiten mit Lesezeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Find-Objekt und Replacement-Objekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Angeben und Entfernen von Suchkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Suchen nach allen den Suchkriterien entsprechenden Instanzen . . . . . . . . . . . . . . . . . 216
Ersetzen von Text oder anderen Elementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Wiederherstellen der Benutzerauswahl nach einer Suche . . . . . . . . . . . . . . . . . . . . . . 219
Arbeiten mit gemeinsam genutzten Office-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Verweisen auf gemeinsam genutzte Office-Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
x Microsoft Office XP Entwicklerhandbuch
Arbeiten mit dem FileSearch-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Grundlagen der Dateisuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Verwenden von erweiterten Funktionen zur Dateisuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Erstellen von wieder verwendbaren Codeanweisungen zur Dateisuche . . . . . . . . . . . . . . . . . . 225
Arbeiten mit dem Office-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Microsoft Agent-ActiveX-Steuerelement kontra Office-Assistent . . . . . . . . . . . . . . . . . . . . . . 229
Programmieren des Office-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Arbeiten mit Balloon-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Verwenden von Steuerelementen in Sprechblasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Nicht-modale Sprechblasen und die Callback-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Arbeiten mit Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Grundlegendes zu anwendungsspezifischen Befehlsleisteninformationen . . . . . . . . . . . . . . . . 240
Microsoft Access-Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Microsoft Excel-Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Microsoft FrontPage-Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Microsoft Outlook-Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Microsoft PowerPoint-Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Microsoft Word-Befehlsleisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Bearbeiten von Befehlsleisten und Befehlsleisten-Steuerelementen mithilfe vonVBA-Codeanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Beziehen von Informationen zu Befehlsleisten und Steuerelementen . . . . . . . . . . . . . . . . 244
Erstellen einer Befehlsleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Ein- und Ausblenden von Befehlsleisten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Kopieren einer Befehlsleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Löschen einer Befehlsleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Benutzerdefinierte Befehlsleisten vor Änderungen von Benutzern schützen . . . . . . . . . . . 250
Arbeiten mit personalisierten Menüs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Arbeiten mit den Symbolen für Befehlsleisten-Schaltflächen . . . . . . . . . . . . . . . . . . . . . . 253
Inhalt xi
Arbeiten mit Befehlsleisten-Steuerelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Hinzufügen von Steuerelementen zu einer Befehlsleiste . . . . . . . . . . . . . . . . . . . . . . . 257
Anzeigen und Aktivieren von Befehlsleisten-Steuerelementen. . . . . . . . . . . . . . . . . . 261
Visuelles Anzeigen des Status eines Befehlsleisten-Steuerelements . . . . . . . . . . . . . . 261
Arbeiten mit Befehlsleistenereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Arbeiten mit Dokumenteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Dokumenteigenschaften in Microsoft Access, Microsoft FrontPage undMicrosoft Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Arbeiten mit dem HTMLProject-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Arbeiten mit Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Grundlegendes zu den Eigenschaften des Script-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Hinzufügen und Entfernen von Skripts in einem Dokument . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Nutzen des vollen Funktionsumfangs von Visual Basic für Applikationen . . . . . . . . . . . . . . . . . . . . . . 282
Arbeiten mit Zeichenfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Vergleichen von Zeichenfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Angeben der Einstellung für den Zeichenfolgenvergleich für ein Modul. . . . . . . . . . . . . . 285
Vergleichen von Zeichenfolgen mithilfe von Vergleichsoperatoren . . . . . . . . . . . . . . . . . 286
Verwenden von Vergleichsoperatoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Verwenden des Like-Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Außerkraftsetzen der Standardeinstellung für den Zeichenfolgenvergleich . . . . . . . . . . . . 288
Berechnen der Zeichenfolgenlänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Durchsuchen einer Zeichenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Zurückgeben von Teilen einer Zeichenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Arbeiten mit Zeichenfolgen als Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Split-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Join-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Filter-Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Ersetzen von Text innerhalb einer Zeichenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Suchen und Ersetzen mit Platzhaltern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
xii Microsoft Office XP Entwicklerhandbuch
Umwandeln der Groß-/Kleinschreibung von Text in einer Zeichenfolge . . . . . . . . . . . . . . . . 299
Arbeiten mit Zeichenfolgenvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Arbeiten mit Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
"Integer", "Long" und "Byte" (Datentypen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Boolean-Datentyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Gleitkomma-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Currency- und Decimal-Datentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Anmerkung zur Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Konvertierung, Rundung und Abschneiden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Formatieren numerischer Werte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Verwenden des Mod-Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Durchführen von Berechnungen an numerischen Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Arbeiten mit Datumsangaben und Uhrzeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Date-Datentyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Abrufen des aktuellen Datums und der aktuellen Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Formatieren eines Datums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Datumstrennzeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Zusammensetzen eines Datums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Abrufen eines Datumsteiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Addieren und Subtrahieren von Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Berechnen der verstrichenen Zeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Arbeiten mit Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Microsoft Scripting Runtime-Objektbibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Zurückgeben von Dateien aus dem Dateisystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Festlegen von Dateiattributen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Protokollieren von Fehlern in einer Textdatei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Dictionary-Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Grundlegendes zu Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Erstellen von Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Inhalt xiii
Arrays und Variablen vom Typ "Variant" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Zuweisen eines Arrays an ein anderes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Zurückgeben eines Arrays aus einer Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Übergeben eines Arrays an eine Prozedur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Sortieren von Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Verwenden der Filter-Funktion zum Durchsuchen von Zeichenfolgenarrays . . . . . . . . . . . . . 338
Verwenden einer binären Suchfunktion zum Durchsuchen numerischer Arrays . . . . . . . . . . . 340
Durchsuchen eines Dictionary-Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Tipps zum Definieren von Prozeduren in VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Verwenden optionaler Argumente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Verwenden von Parameterarrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Übergeben von Argumenten als Wert oder als Verweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Optimieren von VBA-Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Deklarieren von Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Mathematische Operationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Zeichenfolgenoperationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Add-Ins, Vorlagen, Assistenten und Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Funktionsweise eines COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
COM-Add-Ins kontra anwendungsspezifische Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Anzeigen der Liste der verfügbaren COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
Anzeigen der verfügbaren anwendungsspezifischen Add-Ins . . . . . . . . . . . . . . . . . . . . . . 351
Erstellen von COM-Add-Ins für den Visual Basic-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Erstellen von COM-Add-Ins in Office Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Erstellen eines COM-Add-Ins für den Visual Basic-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Arbeiten mit der Bibliothek "Microsoft Visual Basic for Applications Extensibility". . . . . . 355
Erstellen von COM-Add-Ins für Office-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Arbeiten mit Add-In-Designern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Erstellen von COM-Add-Ins für mehrere Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . 359
xiv Microsoft Office XP Entwicklerhandbuch
Konfigurieren eines Add-In-Designers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Arbeiten mit den Objektmodellen der Hostanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . 361
Angeben des Ladeverhaltens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Schreiben von Code im Add-In-Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Implementieren der Bibliothek "IDTExtensibility2" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Arbeiten mit den IDTExtensibility2-Ereignisprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . 365
OnConnection-Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
OnDisconnection-Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
OnStartupComplete-Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
OnBeginShutdown-Ereignis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
OnAddInsUpdate-Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Hinzufügen eines COM-Add-Ins zu einem Befehlsleisten-Steuerelement . . . . . . . . . . . . . . . . 373
Erstellen eines Befehlsleisten-Steuerelements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
Debuggen eines COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Erstellen der DLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Add-In-Registrierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Verteilen von COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Verteilen von mit Office Developer erstellten COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . 378
Verteilen von mit Visual Basic 6.0 erstellten COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . 379
COM-Add-Ins und Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Erstellen von anwendungsspezifischen Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Word-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Erstellen eines Word-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Laden eines Word-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
Ausführen von Code beim Laden oder Entladen eines Word-Add-Ins. . . . . . . . . . . . . . . . 385
Excel-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Erstellen eines Excel-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Laden eines Excel-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
Automatisches Ausführen von Code beim Laden oder Entladen eines Excel-AdIns . . . . . . 388
Inhalt xv
PowerPoint-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Erstellen eines PowerPoint-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Laden eines PowerPoint-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Automatisches Ausführen von Code beim Laden oder Entladen einesPowerPoint-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Access-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Erstellen von Menü-Add-Ins für Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Erstellen von installierbaren Add-Ins für Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Hinzufügen und Entfernen von Befehlsleisten für Word-, Excel- und PowerPoint-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Steuern von Word-, Excel- und PowerPoint-Add-Ins über Code . . . . . . . . . . . . . . . . . . . . . . . 396
Schützen des VBA-Projekts eines Access-, Excel-, PowerPoint- oder Word-Add-Ins . . . . . . 398
Erstellen von Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Word-Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Vorlage "Normal.dot" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Benutzerdefinierte Dokumentvorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Erstellen einer benutzerdefinierten Dokumentvorlage. . . . . . . . . . . . . . . . . . . . . . . . . 401
Erstellen eines neuen Dokuments basierend auf einer Word-Vorlage. . . . . . . . . . . . . 401
Word-Dokumentvorlagen kontra Word-Add-Ins (globale Vorlagen) . . . . . . . . . . . . . . . . 402
Excel-Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
PowerPoint-Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Access-Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Erstellen von Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Allgemeine Merkmale von Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Word-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Excel-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
PowerPoint-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Access-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
xvi Microsoft Office XP Entwicklerhandbuch
KAPITEL 3 Entwickeln von Workflowanwendungen für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Architektur von Workflowanwendungen für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Workflowanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Workflowereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Ereignisreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Exchange Server und öffentliche Ordner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Anwendungsbenutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Workflowskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Planen eines Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Entwicklungsschritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Berechtigungen (Checkliste) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Erstellen eines Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Grundlegendes zum Workflowprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Workflowkomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Standard-Workflowprozess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Konfigurieren des Servers mit Exchange Server für die Workflowentwicklung . . . . . . . . . . . . . . . 428
Erstellen des Exchange-Ordners für das Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Erstellen des Projekts und des Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . 431
Festlegen der Projekteigenschaften für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Anzeigen der Projekteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Festlegen des Sicherheitsmodus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Festlegen des Standard-Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . . . 434
Aktivieren eines Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Verwenden der Workflow-Entwurfsoberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Hinzufügen und Ändern von Status in einem Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Hinzufügen eines Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Umbenennen eines Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Festlegen eines Statustitels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Löschen eines Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Inhalt xvii
Hinzufügen und Ändern von Übergängen in einem Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Hinzufügen eines Übergangs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Ändern des Übergangstyps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Umbenennen eines Ereignisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Festlegen eines Übergangstitels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Kopieren eines Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Löschen eines Workflowprozesses für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Anzeigen und Drucken des Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Ändern des Erscheinungsbildes des Diagramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Zoomen des Diagramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Drucken des Workflowdiagramms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Testen des Workflows für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Entwickeln der Benutzeroberfläche für Exchange Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Hinweise zur Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Outlook-Formulare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
Erstellen eines Outlook-Formulars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Veröffentlichen des Outlook-Formulars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Hilfedateien in Workflowanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Erstellen von Skripts in Workflow Designer für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Erstellen von Skriptprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Sicherheitsmodus des Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Privilegierter Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Eingeschränkter Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Auswählen von Workflowereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Reihenfolge der Workflowereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Workflowereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
xviii Microsoft Office XP Entwicklerhandbuch
Empfangen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Ablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Debuggen von Skripts in Workflow Designer für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . 456
Skriptbeispiele für Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Erstellen und Senden einer E-Mail-Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Erstellen und Bereitstellen einer Nachricht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Auswerten des aktuellen Benutzers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Schreiben von Nachrichten in eine Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Funktion gibt HTTP-URL einer Datei im Informationsspeicher zurück . . . . . . . . . . . . . . . . . 461
Ablauf eines Elements und Senden einer Benachrichtigung . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Festlegen von Berechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Löschen von Berechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
KAPITEL 4 Entwickeln von Workflowanwendungen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Architektur von Workflowanwendungen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Workflowanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Anwendungsentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Systemkonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Sicherheitskonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
SQL Server-Workflow-Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
modSystem-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Workflowaktivierte Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Workflow-Websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Von Vorlagen erstellte Workflow-Websites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Workflowvorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Planen von Workflowanwendungen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Richtlinien für das Entwickeln einer Workflowanwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Richtlinien für den Entwurf des Datenbankschemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Allgemeine Richtlinien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Schemarichtlinien für Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Schemarichtlinien für Berechtigungen auf Zeilenebene . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Inhalt xix
Richtlinien für Workflowskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Richtlinien für Datenzugriffsseiten (Benutzeroberfläche) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Modell der Sicherheitsberechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Sicherheit von Datenbankrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Workflowsicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Datenbanktools und -technologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Client/Server-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Relationaler Datenbankentwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Datenabruf, Analyse und Präsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Modell des Workflowmoduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Funktionen des Workflowmoduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Schemaanforderungen für Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Erstellen von Workflowanwendungen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Grundlegendes zur Workflowanwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Erstellen von Workflowanwendungen ausgehend von Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Erstellen von Workflowanwendungen ausgehend von Datenbanken . . . . . . . . . . . . . . . . . . . . . . . 490
Verwenden von Access zum Erstellen von SQL Server-Datenbanken . . . . . . . . . . . . . . . . . . 491
Erstellen von SQL Server-Datenbanktabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
Grundlegendes zu Workflowprozessen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Hinzufügen von Workflowprozessen zu Datenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Entwerfen von Workflowprozessen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
Steuern von Berechtigungen für Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Auslösen des Workflows für einen Datensatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Übergehen von einem Status in den nächsten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Prüfen von Workflowprozessen für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Einrichten einer Tabellenhierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Definieren des Hierarchieschemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Anforderungen an die Tabellenhierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Erstellen einer Tabellenhierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
xx Microsoft Office XP Entwicklerhandbuch
Hinzufügen von Detail- und Nachschlagetabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Entfernen von Benutzertabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Definieren der Tabellensicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Tabellenberechtigungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Berechtigungen auf Zeilenebene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Änderungen an Basistabellenberechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Weitere Aspekte bei Berechtigungen auf Zeilenebene . . . . . . . . . . . . . . . . . . . . . . . . 503
Aktivieren von Berechtigungen auf Zeilenebene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Entwickeln einer Benutzeroberfläche für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Hinweise zur Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Hinweise zur Websicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Webserversicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Berechtigungen auf Zeilenebene und die Workflow-Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . 506
Erstellen von Benutzeroberflächen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Erstellen von Webs mithilfe von FrontPage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Erstellen von Datenzugriffsseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Verwenden des Workflow-Symbolleisten-Steuerelements von Office Developer . . . . . . . . . . 510
Hinzufügen des Workflow Toolbar-Steuerelements zu Datenzugriffsseiten . . . . . . . . . . . . . . 511
Hinzufügen von Skripts zu Datenzugriffsseiten mithilfe des Microsoft Skript-Editors . . . . . . 511
Erstellen eines State Lookup-Steuerelements auf Datenzugriffsseiten . . . . . . . . . . . . . . . . . . . 512
Hilfedateien in Workflowanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Benutzerinformationen für Workflowanwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Benutzerverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Inhalte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Wartung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Verwalten des Benutzerverzeichnisses für Workflowanwendungen . . . . . . . . . . . . . . . . . . . . 517
Benutzer im Benutzerverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Synchronisieren des Benutzerverzeichnisses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Auffüllen von Steuerelementen mit Benutzerinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Inhalt xxi
Verwenden alternativer Benutzeroberflächen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Einrichten von Konten, Benutzernamen, Rollen und Benutzern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Sicherheitskategorien in Workflow Designer für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Berechtigungen der Sicherheitskategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Vom Serveradministrator definierte Berechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Vom Workflowanwendungs-Besitzer definierte Berechtigungen. . . . . . . . . . . . . . . . . . . . 524
Von Workflowanwendungs-Benutzern definierte Berechtigungen . . . . . . . . . . . . . . . . . . 524
Windows 2000- und SQL Server-Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Erstellen von Benutzer- und Gruppenkonten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Erstellen eines neuen Windows 2000-Benutzerkontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Erstellen eines neuen lokalen Gruppenkontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Erstellen eines neuen globalen Gruppenkontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Erstellen von SQL Server-Benutzernamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
Erstellen von SQL Server-Benutzernamen mithilfe von Enterprise Manager . . . . . . . . . . . . . 531
Erstellen von SQL Server-Benutzernamen mithilfe des Assistenten zum Instantiierenvon SQL Server-Workflowvorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Erstellen von Datenbankrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Erstellen von Workflow-Anwendungsbenutzern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Zuweisen von Benutzern zu Datenbankrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Definieren von Berechtigungen für Datenbankrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Erstellen von Skripts für Workflowereignisse für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Skriptprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
Workflowereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Ereignisreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
OnCreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
OnChange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
OnDelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Unterdrücken von Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Namen von Skriptprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
xxii Microsoft Office XP Entwicklerhandbuch
Erstellen von Skripts für Ereignisse in Workflow Designer für SQL Server . . . . . . . . . . . . . . . . . 540
Verwendungszweck der Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Skriptprozedurnamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Steuerung von Zeilenänderungen anhand eines Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
OnEnter-Ereignis und OnExit-Ereignis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
OnExpire-Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Hinzufügen von Übergangsereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Automatisieren von Änderungen und Ereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Datenbearbeitung mithilfe von Workflowskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
Abruf von Benutzerinformationen durch Workflowskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Suche der Rollenmitgliedschaft anhand von "SAMAccountName" . . . . . . . . . . . . . . . . . . . . . . . . 546
Fehlerbehandlung für Workflowskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Testen und Debuggen in Workflow Designer für SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
Erstellen von Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Vorlageninhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Vorlageninformationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Erstellen einer Vorlage für eine Workflowanwendung für SQL Server . . . . . . . . . . . . . . . . . . . . . 551
Speichern einer Vorlage auf einem Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Testen einer Vorlage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
KAPITEL 5 Entwickeln von Digital Dashboard-Anwendungen mithilfe von Webparts . . . . . . . . . . . . . . . . . . 555
Grundlegendes zu Digital Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Vorteile von Digital Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Erstellen von Digital Dashboard-Projekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Ändern grundlegender Dashboardeigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Weitergeben von Exchange Server-Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Sichern von Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Öffnen des Portals von SharePoint Portal Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Inhalt xxiii
Web Parts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Webparteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Basiseigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Darstellungseigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Inhaltseigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Execution Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Hinzufügen von Webparts zu einem Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Hinzufügen von Webparts mithilfe von Digital Dashboard-Projekten inOffice Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Webparttypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Webparts mit eingebettetem Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Webparts mit verknüpftem Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Webparts mit XML-Inhalt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Einschränkungen der XML- und XSL-Codierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567
Richtlinien zum Erstellen nützlicher Webparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Informative und anpassbare Webparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
CustomizationLink-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
PartStorage-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569
Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Cookies und nicht isolierter Inhalt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Webparts mit konsistentem Erscheinungsbild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Isolierung von Webparts von anderen Webparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Isolierung von Webparts in Frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Zeichenfolgenersetzung zur Vermeidung von Namenskonflikten . . . . . . . . . . . . . . . . . . . 576
Tokenersetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Portable Webparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
Interpretation von Webparts durch eine Digital Dashboard-Factory . . . . . . . . . . . . . . . . . . . . . . . . 578
xxiv Microsoft Office XP Entwicklerhandbuch
KAPITEL 6 Debuggen und Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Schreiben von fehlerfreiem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Debuggen von Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
VBA-Debugtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
Entwurfszeittools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
Anzeigen von Code nach Fehlern in Microsoft Access . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Laufzeittools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Tools zum Debuggen von Skripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Weitere Debugverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
Grundlegendes zur bedingten Kompilierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590
Verwenden von Assertionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591
Erstellen von benutzerdefinierten Assertionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Grundlegende Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Automatisieren der Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Abrufen von Informationen zu einem Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
Err-Objekt (VBA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
Error-Objekt und Errors-Auflistung (ADO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
Zurückgeben von Informationen zu einem Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
Fehlerbehandlung in Klassenmodulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
Behandeln von Skriptfehlern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
Behandeln von VBScript-Laufzeitfehlern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
Behandeln von JScript-Laufzeitfehlern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Protokollieren von Fehlern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
KAPITEL 7 Lokalisieren der Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
Lokalisierungsrichtlinien für die Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
Lokalisierungsrichtlinien für Sprache und Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
Lokalisierungsrichtlinien für Codeanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Lokalisieren der Access Runtime-Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
Inhalt xxv
KAPITEL 8 Weitergeben der Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Verpackungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Erstellen eines Setup-Pakets mithilfe des Verpackungs-Assistenten . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Identifizieren der Anwendungs- und Installationspaketinformationen . . . . . . . . . . . . . . . . . . . . . . 617
Einschließen von Abhängigkeitsdateien in Setup-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618
Ändern der Standardinstallationsorte für Setup-Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Definieren von Verknüpfungen im Startmenü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
Testen des Setup-Pakets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Weitergeben von Office-Vorlagen und anwendungsspezifischen Add-Ins . . . . . . . . . . . . . . . . . . . . . . 621
Funktionsweise von Benutzerprofilen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Weitergeben von benutzerdefinierten Office-Vorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Lokale Installation einer benutzerdefinierten Vorlage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625
Weitergabe einer Arbeitsgruppenvorlage in einer Netzwerkfreigabe . . . . . . . . . . . . . . . . . . . . 625
Weitergeben von anwendungsspezifischen Office-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
Weitergeben von COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Weitergeben von Outlook- und FrontPage-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Weitergeben von Microsoft Access-Anwendungen mit Access Runtime . . . . . . . . . . . . . . . . . . . . . . . 628
Entwickeln von Access Runtime-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Entwicklungsprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
Simulieren der Microsoft Access Runtime-Umgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
Unterschiede zwischen der Vollversion von Microsoft Access und derLaufzeitumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Access Runtime-Lizenzierungsschlüssel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Sicherheit für die Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
Suchen von Access Runtime-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
TEIL 3 Programmierkonzepte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
KAPITEL 9 Schreiben von robustem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
Schreiben von robusten Skriptanweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Verwenden der Option Explicit-Anweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Verwenden einer Benennungskonvention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
xxvi Microsoft Office XP Entwicklerhandbuch
Benennen von Variablen und Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Variablennamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Konstantennamen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Benennen von Objekten und Steuerelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
Benennen von Funktionen und Unterroutinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Strukturieren und Formatieren von Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Strukturieren von Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Formatieren von Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Formatieren von VBScript- und VBA-Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Kommentieren von Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Effektives Verwenden von Kommentaren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658
Automatisieren der Codekommentierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662
Entwerfen von wieder verwendbaren Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Funktionsweise von wieder verwendbarem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664
Schreiben von wieder verwendbarem Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Gemeinsames Nutzen von Quellcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
KAPITEL 10 Arbeiten mit XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
Office-Anwendungen und XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
XML-Unterstützung in Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Importieren von XML-Daten in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Exportieren von XML-Daten in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Exportieren von Tabellen, Abfragen, Sichten, Datenblättern, Formularen oderBerichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
XSL: technischer Hintergrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
XSL-Transformation in Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Access-Berichte in XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Arbeiten mit XML in der Entwurfsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
XML-Quellansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Inhalt xxvii
KAPITEL 11 Benutzerdefinierte Klassen und Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
Vorteile von eigenen Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
Gründe zum Erstellen benutzerdefinierter Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Verringern der Codekomplexität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Aufrufen von DLL-Funktionen (Dynamic Link Library) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Erstellen benutzerdefinierter Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Erstellen von COM-Add-Ins und anwendungsspezifischen Add-Ins . . . . . . . . . . . . . . . . . . . . 682
Erstellen benutzerdefinierter Objektmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Klassen (Grundlegende Konzepte) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Funktionsweise von Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Hinzufügen eines Klassenmoduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Erstellen einer neuen Instanz einer Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Instancing-Eigenschaft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Überlegungen zum Gültigkeitsbereich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
Gültigkeitsbereich für Objektvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
Gültigkeitsbereich für Elemente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
Erstellen einfacher Eigenschaften mit Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
Erstellen von Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
Erstellen von Property-Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Erstellen von Skalareigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Property Let-Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Property Get-Prozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Erstellen von Objekteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
Kapseln eines integrierten Objekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
Zugreifen auf Objekte in einem benutzerdefinierten Objektmodell . . . . . . . . . . . . . . . . . . . . . 696
Erstellen von Ereignissen und Ereignisprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
Erstellen von Ereignisprozeduren für integrierte Ereignisse mithilfe des WithEvents-Schlüsselwortes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
Hinzufügen von Ereignissen zu benutzerdefinierten Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
Grundlegendes zu benutzerdefinierten Ereignissen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
xxviii Microsoft Office XP Entwicklerhandbuch
Gründe für das Erstellen eines benutzerdefinierten Ereignisses . . . . . . . . . . . . . . . . . . . . . . . . 702
Erstellen benutzerdefinierter Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
Erweitern von Objekten durch Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
Grundlagen zu Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Implementieren einer abstrakten Schnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708
Implementieren einer nicht abstrakten Klasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
Entwerfen von Objektmodellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
Planen des Objektmodells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
Erstellen von Auflistungsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Verknüpfen von Objekten mit Objekteigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Gemeinsame Nutzung von Code mithilfe von Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
Erstellen benutzerdefinierter Objekte für Webseiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Dynamic HTML-Scriptlets (DHTML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
DHTML-Verhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 720
TEIL 4 Verwenden von Office Developer Productivity Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
KAPITEL 12 Gemeinsames Nutzen von Codeanweisungen mithilfe der Codebibliothek . . . . . . . . . . . . . . . . 725
Öffnen der Codebibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Erstellen einer Codebibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Erstellen von Codebibliothekkategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Verwenden von Codeausschnitten aus der Codebibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Suchen nach Codeelementen in der Codebibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Einfügen von Codeausschnitten aus der Codebibliothek in Ihr Projekt . . . . . . . . . . . . . . . . . . . . . . 728
Anpassen von Codeanweisungen in der Codebibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
Ändern vorhandener Codedatenbanken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
Definieren von Kategorien und Codeelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
Zuweisen von Schlüsselwörtern zu einem Codeelement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Ändern der Schlüsselwörter eines Codeelements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
Verfügbarmachen der Codebibliothek für mehrere Benutzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
Verteilen von Codebeispielen mithilfe des Codebibliotheks-Viewers . . . . . . . . . . . . . . . . . . . . . . . 733
Inhalt xxix
KAPITEL 13 Verwenden der Quellcodeverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
Einrichten von Visual SourceSafe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
Installieren der Anwendung Visual SourceSafe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
Zuweisen von Benutzerberechtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Herstellen einer Verbindung zu einer Visual SourceSafe-Datenbank . . . . . . . . . . . . . . . . . . . . . . . 737
Wählen des richtigen Quellcodeverwaltungs-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Verwenden des Visual SourceSafe-Add-Ins mit der Visual Basic-Umgebung . . . . . . . . . . . . . . . . . . . 738
Funktionsweise der Quellcodeverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Verwenden von Visual SourceSafe mit Dokumenten und VBA-Code . . . . . . . . . . . . . . . . . . . . . . . . . . 740
Erstellen des ursprünglichen Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
Ändern des Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Hinzufügen von VBA-Codemodulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
Ändern von VBA-Codemodulen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
Verwenden der Quellcodeverwaltung mit Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743
KAPITEL 14 Gemeinsames Nutzen und Wiederverwenden von VBA-Objekten . . . . . . . . . . . . . . . . . . . . . . . . 745
Exportieren von VBA-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Importieren von VBA-Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
KAPITEL 15 Rapid Application Development-Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Formatieren von Zeichenfolgenvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Formatieren von Codekommentierungs- und Fehlerhandlervorlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 749
ANHANG A Microsoft Office Developer-Anleitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
ANLEITUNG 1 Erstellen eines COM-Add-Ins mit VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Konfigurieren des Add-In-Designers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Schreiben von Code im Add-In-Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
Integrieren eines Befehlsleisten-Steuerelements in ein Add-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
Debuggen und Testen des COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759
Erstellen einer DLL für das COM-Add-In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
xxx Microsoft Office XP Entwicklerhandbuch
Behandlung häufiger Entwicklungs-probleme bei COM-Add-Ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
Kompilierfehler werden angezeigt, oder die Anweisungsvervollständigung im Editorfunktioniert nicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
Keine Reaktion beim Ausführen eines Projekts und Öffnen einer neuen Instanz derHostanwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 761
Das Objekt wird zwar in der Hostanwendung angezeigt, aber reagiert nicht . . . . . . . . . . . . . . . . . 761
ANLEITUNG 2 Erstellen einer Workflowanwendung mithilfe von Exchange Server . . . . . . . . . . . . . . . . . . . . 763
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Vorbereiten von Exchange für eine Teamanwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Erstellen der Benutzeroberfläche in Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Planen des Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
Workflowprozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
Workflowskripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
Erstellen eines Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
Erstellen des Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
Hinzufügen von Status zum Workflowdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
Hinzufügen von Übergängen zu Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
Erstellen der Skriptprozeduren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
Aktivieren des Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 789
Verwenden des Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
ANLEITUNG 3 Entwickeln einer Workflowanwendung mithilfe von Workflow Designer für SQL Server . . . . . . . 791
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Installationsvoraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
Erstellen einer Workflowanwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
Schritt 1: Erstellen einer SQL Server-Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
Erstellen der SQL Server-Datenbank mithilfe von Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
Anmelden bei SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793
Erstellen von SQL Server-Datenbanktabellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
Erstellen von Beziehungen im Datenbankdiagramm-Designer von Access . . . . . . . . . . . . . . . 796
Registrieren der Datenbank als Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
Inhalt xxxi
Schritt 2: Erstellen einer Tabellenhierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
Schritt 3: Erstellen eines Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
Schritt 4: Testen des Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
Schritt 5: Erweitern des Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
Ändern eines Workflowprozesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
Schritt 6: Hinzufügen von Datenbankbenutzern und Erstellen von Rollen . . . . . . . . . . . . . . . . . . . 802
Erstellen von Datenbankrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
Synchronisieren des Benutzerverzeichnisses mit Exchange Server . . . . . . . . . . . . . . . . . . . . . 805
Schritt 7: Definieren von Workflowberechtigungen und Hinzufügen von Workflowskripts . . . . . . 806
Hinzufügen von Skripts zu Workflowübergängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
Schritt 8: Erstellen einer webbasierten Benutzeroberfläche mithilfe von Datenzugriffsseiten . . . . . . 807
Erstellen von Datenzugriffsseiten für eine Anwendung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808
Erstellen von Navigationssteuerelementen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
Schritt 9: Erstellen einer Vorlage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
ANLEITUNG 4 Erstellen einer Digital Dashboard-Anwendung mithilfe von Webparts . . . . . . . . . . . . . . . . . . 815
Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
Vorbereiten eines Servers von Exchange Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
Erstellen eines Digital Dashboard-Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
Hinzufügen von Webparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
Anzeigen einer Vorschau und Testen des Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
ANHANG B Microsoft Office XP Developer Objektmodellhandbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
Verwenden der Objektmodelldiagramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
Office XP-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
Objektmodell für Microsoft Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
Objektmodell für Microsoft Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
Objektmodell für Microsoft FrontPage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Objektmodell für Microsoft MapPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
Objektmodell für Microsoft Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 830
Objektmodell für Microsoft PowerPoint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
Objektmodell für Microsoft Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
xxxii Microsoft Office XP Entwicklerhandbuch
Objektmodell für Microsoft Publisher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
Objektmodell für Microsoft Visio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
Objektmodell für Microsoft Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
Gemeinsam genutzte Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
Objektmodell für Microsoft Office XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
Objektmodell für Microsoft Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
Objektmodell für Microsoft Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
Objektmodell für den Visual Basic-Editor 6.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 851
Datenzugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Objektmodell für Microsoft ActiveX Data Objects 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Objektmodell für Microsoft ADO Extensions 2.1 for DDL and Security . . . . . . . . . . . . . . . . . . . . . . . . 854
Objektmodell für Microsoft ActiveX Data Objects (Multi-Dimensional) 1.0 . . . . . . . . . . . . . . . . . . . . . 855
Objektmodell für die Microsoft Data Access Objects (DAO) 3.6-Objektbibliothek . . . . . . . . . . . . . . . . 856
Objektmodell für die Microsoft Jet and Replication Objects 2.1-Bibliothek . . . . . . . . . . . . . . . . . . . . . . 857
Webtechnologien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Objektmodell für Microsoft Internet Explorer 5 und Dokumentobjektmodell . . . . . . . . . . . . . . . . . . . . 859
Objektmodell für Microsoft Scripting Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
Objektmodell für Microsoft Office XP Chart Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
Objektmodell für das Microsoft Office XP Datenquellen-Steuerelement . . . . . . . . . . . . . . . . . . . . . . . . 862
Objektmodell für PivotTable Component von Microsoft Office XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863
Objektmodell für PivotTable Component von Microsoft Office XP (2) . . . . . . . . . . . . . . . . . . . . . . . . . 864
Objektmodell für Microsoft Office XP Spreadsheet Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
Objektmodell für Microsoft Office XP-Servererweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
ANHANG C Zusätzliches Referenzmaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 867