Outlook-Net.de
Impressum und rechtliche Hinweise

von Folke Kieseler ( MCSE, MVP Outlook)

 

Home | FAQ | Workshops | Tour | Inside OL2000 | Exchange effektiv
Download
| Sitemap | Security Patch | Links | Suche

horizontal rule

Letzte Aktualisierung: 12-Dez-04

8. Programmierung / Formulare

8.1. Wie kann ich: mit wenig Aufwand ein Outlook-Formular anpassen?
8.2. Wie kann ich: Formulare ändern - MsgClass ändern
8.3. Wie kann ich: meine Formulare verwalten und löschen?
8.4. Wie kann ich: Outlook Notizzettel in Word schreiben
8.5. Wie kann ich: mein Formular zum Standardformular?
8.6. Die automatische Überprüfung der Telefonnummern funktioniert nicht mehr!
8.7. Beim meinem benutzerdefinierten Kontakteformular sind die Feldnamen plötzlich englisch. Wie kann ich das rückgängig machen?

 

horizontal rule

8.1. ... mit wenig Aufwand ein Outlook-Formular anpassen?

Oft sind es nur Kleinigkeiten, die an den Standardformularen von Outlook stören. 
Sie können ohne Kenntnisse der Programmiersprache VBScript verbessert werden. 
Es lohnt sich durchaus, sich für persönliche Zwecke oder auch als Einstieg in zukünftige netzweite Lösungen die folgenden 7 Schritte anzueignen.

 
1 Ein neues Element (Kontakt, Aufgabe, öffentliche Nachricht, Termin etc.) anlegen.
2 Die Veränderungen eintragen, die dauerhaft im neuen Formular berücksichtigt werden sollen. 

Dabei kann es sich z.B. um die Auswahl der privaten Adresse als Standard-Postadresse handeln. Oder um die Vorabeinstellung bestimmter Kategorien. Oder um einen vorgegebenen Text im Nachrichtenfeld.

3 Im Menü Extras/Formulare den Befehl "Dieses Formular entwerfen" auswählen. (Das Entfernen/Hinzufügen von Steuerelementen und Feldern, das Anzeigen und Verbergen von bestimmten Seiten des Formulars, die Programmierung von Ereignissen und Aktionen kann in dieser Phase erfolgen, wird hier aber nicht behandelt.)
4 Im Menü Extras/Formulare den Befehl "Formular veröffentlichen" wählen.
5 In der der Ordnerauswahlliste "Suchen in:" den aktuellen Ordner auswählen und dem Formular im Feld "Angezeigter Name:" einen Namen geben.
6 Nun Datei/Schließen (oder ESC) wählen. 

Die Frage "Möchten Sie die Änderungen speichern?" mit NEIN beantworten.

7 Das Formular wird installiert, wenn man erstmalig im Menü Aktionen/Neu: MeinNeuesFormular wählt.

Weiterführende Anmerkungen:

bulletDas neue Formular steht erst mal nur in dem Ordner zur Verfügung, in dem es veröffentlicht wurde.
bullet Alte Elemente verwenden das neue Formular nicht. (s. hier...)
bulletWenn im jeweiligen Ordner das neue Formular als Standard verwendet werden soll, muss man in den Ordnereigenschaften im Feld "Bereitstellen in diesem Ordner mit:" das neue Formular auswählen. (s. hier...)
bulletFür die zusätzliche Speicherung und Übertragung des Formulars auf andere Ordner sollte man es in der persönlichen Ordnerbibliothek speichern. Das kann, wie auch das Löschen und Kopieren im Formularverwaltungsdialog geschehen. Man erreicht ihn folgendermaßen: 

Extras/Optionen/Weitere/Erweiterte Optionen/Benutzerdefinierte Formulare/Formulare

bulletDen Formularverwaltungsdialog gibt es nur im CW-Modus!
bulletIm linken Fenster den oben genannten Ordner wählen, 
bulletim rechten Fenster die Bibliothek "Persönliche Formulare". 
bulletKopieren.
bulletFür die Verteilung des Formulars an andere Anwender und an andere PCs kann man es als Outlook-Vorlage im Dateisystem speichern: 

Neues Element erstellen - Datei/Speichern unter... (z.B. MeinNeuesFormular.oft).

horizontal rule

 

8.2. ...Formulare ändern - MsgClass ändern

 
Wird ein Formular geändert, werden die Änderungen nur für neue Items, die auf diesem Formular basieren, aktiv. 
Bisherige (schon bestehende) Einträge müssen auf das neue / geänderte Formular aktualisiert werden. 

 

bulletDas coolste Tool (DocMessageClass) dazu gibt's hier:
http://www.publicshareware.com/download/DocMessageClass.zip

 
bulletWeiterhin mit der OMSGCLAS.EXE von Microsoft.
http://support.microsoft.com/support/kb/articles/q201/0/89.asp

 

bulletEs geht auch mit einem VBA-Makro von Hans-Jürgen Neschtschenko
 
Sub KlasseAnpassen()

Set olap = CreateObject("Outlook.Application")
Set olns = olap.GetNamespace("MAPI")
Set olfo = olns.PickFolder
For Each Item In olfo.Items
If Instr(Item.MessageClass, "Contact") > 0 then
Item.MessageClass = "IPM.Contact.MeinFormular"
Item.Save
End If
Next
Set olap = Nothing
End Sub
 
Wenn es sich allerdings bereits um ein one-off-Item handelt, hilft die Änderung der MessageClass auch nicht weiter. Derartige Elemente reduzieren ihre Größe nie wieder. Sie können nur von Hand oder programmiert in andere, neue Elemente kopiert/überführt werden. 

Der folgende Artikel der Microsoft Knowledgebase gibt umfassend Auskunft darüber. 
Er bezieht sich zwar auf OL98, einige der genannten Gründe gelten aber in OL2000 weiter.

http://support.microsoft.com/support/kb/articles/Q181/2/66.asp

 

horizontal rule

 

8.3. ...meine Formulare verwalten und löschen?

 

In OL 2000 IMO-Mode:

Gar nicht!
Ja, richtig gelesen: Es geht nicht. Man kann zwar seine alten Formulare mit demselben Namen überschreiben (und das auch nicht immer...), aber löschen lassen sie sicht nicht. Einzige Möglichkeit: Kurzzeitig in den CW-Mode wechseln (Mehr Info) und hier die Formulare löschen.

In OL 2000 CW-Mode:

Im Formularverwaltungsdialog:
Extras / Optionen / Weitere / Erweiterte Optionen / Benutzerdefinierte Formulare / Formulare...

horizontal rule

 

8.4. ... einen Outlook Notizzettel in Word schreiben

 

Wenn man seine tägliche Arbeit überwiegend in Word verrichtet und zwischendurch eine Idee, eine Telefonnummer oder irgendetwas nicht strukturierbares notieren will, kann man das mit folgendem Makro beschleunigen. Es erstellt eine Notiz im Outlook-Standard-Notizenordner im Sekundenbruchteil. Es mag als Grundlage für eigene Ideen dienen, aus Textteilen in Word mitten im Schreibfluss Outlook-Elemente herzustellen, ohne dass sich irgendwelche neuen Fenster öffnen oder Rückfragen gestellt werden.

 

Sub SchnelleNotiz()
' Beispiel für VBA-Zugriff auf Outlook.
' Macht aus dem markierten Text einen der kleinen gelben Zettel.
' Oder welche Farbe auch immer in Outlook als Standard definiert wurde.
' Makro auf Symbolleiste legen, dann geht es mit einem einzigen Klick.
' Schneller und praktischer als die Herstellung einer Notiz mit dem Symbol der
' Office-Shortcut-Leiste, Einfügen des Textes mit Cut and Paste und Schließen!
' Hans-Jürgen Neschtschenko, 31.01.1999
' Word97, Outlook 98, aktuellste VBSCRIPT.DLL

Dim olapp As Object, newnote As Object
Dim newtext As String

' Wenn nichts markiert ist, nehmen wir den ganzen Text:
If Len(Selection.Text) < 2 Then
Selection.WholeStory
End If

newtext = Selection.Range.Text
Set olapp = GetObject(, "Outlook.Application")
' Vorsicht: wenn Outlook nicht läuft, gibt's hier einen Fehler
' Perfektionisten fangen ihn mit IF olapp is nothing then ... ab.
' Außerdem: ältere VBSCRIPT.DLLs haben einen Fehler in GETOBJECT !
' Dann CREATEOBJECT("Outlook.Application") verwenden

Set newnote = olapp.createitem(5)
newnote.body = newtext

' Wenn man sie noch editieren möchte,
' oder wenn man sie am Bildschirm kleben lassen möchte:
' newnote.Display

' Ansonsten speichern:
newnote.Close (olSave)

Set olapp = Nothing
Set newnote = Nothing

End Sub

horizontal rule

 

8.5. Wie mache ich mein Formular zum Standardformular?

bulletFormular veröffentlichen, entweder im Ordner selbst oder in einer "Formularbibliothek".
bulletRechtsklick auf das Ordnersymbol, Eigenschaften. Hier unter "Bereitstellen in diesem Ordner" dein Formular auswählen.
bulletUm die bestehenden Kontakte auf das neue Formular umzustellen,siehe "Formulare ändern/Message Class ändern".

horizontal rule

 

8.6. Die automatische Überprüfung der Telefonnummern funktioniert nicht mehr!

 Wenn man die erste Seite des Kontaktformulars bearbeitet, passieren seltsame Dinge. Eins davon: die automatische (auch die per Doppelklick) Korrektur der Telefonnummern funktioniert nicht mehr. 

Die einzige Möglichkeit sich davor zu schützen ist: die erste Seite so lassen wie sie ist und für eigene Felder und Buttons die anderen Seiten benutzen. Am besten man macht eine eigene Seite für die neuen Elemente.

horizontal rule

 

8.7. Beim meinem benutzerdefinierten Kontakteformular sind die Feldnamen plötzlich englisch!

 Wenn man ein Kontakteformular verändern möchte, tauchen im Entwurfsmodus plötzlich englische Bezeichnungen für die Felder auf. 

Das ist eindeutig ein Fehler im Outlook-Entwicklungswerkzeug. 

Manchmal sind nach der Veröffentlichung des benutzerdefinierten Formulars die Bezeichnungen wieder deutsch. 

Offenbar dann, wenn man nur bestimmte Eigenschaften der Seite verändert hat. Meistens bleibt aber nicht anderes übrig, als diese Bezeichnungen einzeln und von Hand im Entwurfsmodus "einzudeutschen". Es handelt sich bei den Bezeichnungen um Steuerelemente vom Typ "Label".

 
bulletMit der rechten Maustaste auf die Bezeichnung klicken, so dass ein Markierungsrahmen um die Bezeichnung sichtbar wird. 
(Falls das nicht klappt: erst mal eine andere Seite des Formulars anklicken, dann wieder zurück auf die gewünschte Seite, danach funktioniert es.)
bulletIm Kontextmenü "Eigenschaften" wählen.
bulletIm Feld "Titel:" die deutsche Bezeichnung eintragen.
bulletDas Formular neu veröffentlichen.

 

 

horizontal rule

Home | FAQ | Workshops | Inside OL2000 | Exchange effektiv | Download

Wer gute Tipps oder Antworten hat, die hier fehlen, sende sie bitte ein, damit auch andere davon profitieren können. Hier geht's zum Formular .

© 2000 - 2004 by Folke Kieseler / Hans Jürgen Neschtschenko / Frank Zunderer / Janis Möckelmann