30
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

INHALT · iv Microsoft Office XP Entwicklerhandbuch Zu ... Set-Anweisung und New-Schlüsselwort bei der Automatisierung .....76 Einfachverwendungs- kontra Mehrfachverwendungsanwendungen.....79

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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