VBA Von Word Zugriff auf Outlook-Kontakte

Hallo zusammen,

da meine Nachfrage nach einem ggf. fertigen Makro im Textverarbeitungsbrett leider auf keine Resonanz stieß, hier noch mal meine Suche nach Unterstützung.

Ich suche für einen Kollegen ein kleines Wordmakro bzw. werde mich jetzt wohl selbst mit VBA an die Arbeit hierzu machen müssen, das es gestattet in Word (2000) die Adressen aus dem Kontaktordner von Outlook (2000) für einen einzelnen personalisierten Brief unter Verwendung einer definierten Dokumentenvorlage (wird zuvor in Word geöffnet) zu übernehmen, und zwar wahlweise geschäftliche Adresse, private Adresse, sonstige Adresse (ggf. automatischer Vorschlag der als Postanschrift markierten Adresse). Suche sollte über Nachname bzw. Firma des Kontakts möglich sein.

Leider taugt das Word-Adressbuch kein Stück, da es:

  1. Nur die Suche nach Vorname anbietet (auch wenn in Outlook als Sortierreihenfolge für das Adressbuch Nachname, Vorname eingetragen ist
  2. Nur die geschäftliche Adresse liefert (keine Ahnung warum man überhaupt dann eine Adresse als Postanschrift definieren kann)

Hat jemand so ein Teil schon fertig bei sich liegen (ggf. nur in Teilen) oder kann mir zumindest etwas auf die Sprünge helfen, da ich noch nie so tief in Office-Automation einsteigen musste? Habe bislang schon ziemlich rumgesucht und auch schon einige grundsätzliche Hinweise zum Thema gefunden, aber mir fehlen z.B. noch Ansätze für eine komfortable Auswahlfunktion, die mit der Eingabe der einzelnen Buchstaben schon mal die möglichen Kontakte anzeigt und mit jedem weiteren Buchstaben eingrenzt. Auch habe ich bislang nur Felddefinitionen gefunden die sich auf die Geschäftsadresse beziehen. Wie komme ich an die Felder der weiteren Adressen und an das Feld „Postanschrift“? Schön wäre auch ein Zugriff auf alle gespeicherten Faxnummern des Kontakts (geschäftliches/privates Fax).

Einbindung der Lösung/Programmablauf sollte wie folgt sein:

  1. In Word wird über entsprechende Symbolleiste eine für die Automatisierung (Textmarken/Autotext/Platzhalter, was halt Sinn macht) vorbereitete Dokumentenvorlage ausgewählt (die man nach Möglichkeit auch noch manuell ausfüllen können sollte).

  2. Über Button „Outlook-Kontakt einfügen“ wird kleine Eingabemaske aufgerufen in der über Radio-Button Suche nach Nachname oder Firma ausgewählt werden kann und dann ein Suchbegriff in einem Textfeld eingegeben werden kann. Während der Eingabe scrollen passende Kontakte in Tabelle oder nach kompletter Eingabe und Bestätigung werden passende Kontakte zur Auswahl angezeigt.

  3. Mit Doppelklick wird Kontakt ausgewählt, in Anzeige erscheinen alle zum Kontakt erfassten Adressen, Postanschrift als Default, nach Anklicken einer Adresse wird diese in das Word-Dokument übernommen.

Alternative:
Im Kontextmenü der Outlook-Kontakte wird zusätzlicher Punkt für die Automatisation eingetragen, es erfolgt eine Auswahl vorbereiteter Vorlagen und eine Anzeige aller Adressen des Kontakts, von denen eine dann per Klick übernommen werden kann. Es wird dann eine neue Wordinstanz mit der ausgewählten Dokumentenvorlage geöffnet und in diese die Adresse eingefügt.

Gruß vom Wiz

Moin!

'ne fertige Lösung habe ich nicht in der Tasche. Aber einen Tip, der Dir vielleicht auf die Sprünge hilft.

Am Besten Du schaust mal da nach:
http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…

Das betrifft zwar das Erstellen einer neuen Email, aber die Mechanismen, um an die Outlook-Daten ranzukommen sind ähnlich. Das Outlook-Objekt hat Collections, in denen alle Mails, Aufgaben, Kontakte etc. zu finden sind. Ich habe noch keine Suchfunktion im Outlook-Interface gefunden, du mußt, um eine Adresse zu finden, zu Fuß durch die Collection durchmarschieren und jeden Datensatz prüfen, ob er der gesuchte ist. Die einzelnen Datenfelder sind jeweils Eigenschaften des ContactItem-Objekts.

Vielleicht wäre es ja auch sinnvoll, das Makro in Outlook aufzuhängen, dann könntest Du von dort aus Word starten, wenn bereits die Adresse gefunden ist. Du sparst Dir dann den Bau der Suchfunktionen und Suchmasken, weil Du ja einfach die in Outlook eingebauten Mechanismen einsetzt. Die entsprechenden Daten kannst Du dann innerhalb des Outlook-Makros an das Word Dokument übergeben. Wäre vielleicht eleganter?

Gruß Sven

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sven,

ja, die Lösung über Outlook hat natürlich einen riesengroßen Vorteil, wenn man nicht auf eine fertige Methode zur Suche über die Kontakte zurückgreifen kann. Allerdings habe ich ja schon wenig Ahnung von Word-VBA Programmierung, aber noch viel weniger von Outlook. Bei Word kann ich das Makro einfach in die Normal.Dot legen und damit einen Button in einer Buttonbar anlegen. Wie würde man denn bei Outlook ein VBA-Programm so einbinden, dass nach dem Start von Outlook z.B. im Kontextmenü des Kontaktordners es dann als zusätzlicher Punkt auftauchen würde? Dies wäre ja vermutlich dann die beste Lösung, weil der entsprechende Kontakt dann ja schon ausgewählt wäre.

Gruß vom Wiz

Moin!

Ich habe bisher nix direkt in Outlook programmiert, sondern die Outlook-Objekte in VB6 Anwendungen eingebunden. Daher habe ich ziemlich wenig Ahnung wie man das Makro nun konkret einbindet. Ich kann mir vorstellen, das eventuell auf eine Schaltfläche im Kontaktformular zu setzen, da kann man dann bereits die gewüschte Unteradresse ausgewählt haben.
Was ich jedoch nicht bedacht habe, ist, daß das Ganze, wenn in Outlook eingesetzt, natürlich eine Aktivierung der Makrofunktionen erfordert, das kann im Zweifelsfall ein böses Sicherheitsloch ergeben…

Vielleicht findet sich in diesem Forum ja jemand, der mehr Erfahrungen mit Outlook hat als ich?

Gruß Sven

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]