ineichp
Goto Top

Übergabe von Wert eines benutzdefinierten Feld von Outlook an Word

Hallo zusammen

Ich möchte Werte meiner gespeicherten Kontakte in Outlook direkt in Word als Textfeld einfügen. Das habe ich auch über folgende Anleitung geschafft:
http://blog.vonderalb.net/outlook-adressen-in-word-einfugen-eine-anleit ...

Soweit so gut....nun sind diese Platzhalter (PR_....) von Microsoft vordefiniert. Sprich: PR_SURNAME ist der Platzhalten in Word für den definierten Familienname im Outlook.
Ich habe jedoch in meinem Outlook bei jedem Kontakt noch benutzerdefinierte Felder gemacht.

Kann mir jemand sagen, ob auch diese benutzerdefinierten Felder einen Platzhalter im Word haben? Wenn ja, wo finde ich diesen raus?

Wenn Nein, könnte man das über ein Makro allenfalls auch lösen, dass man diverse Felder vom Outlook-Adressbuch an Word übergibt?
Falls das eine Lösung sein könnte und das jemand kann, wäre ich auch bereit was für das zu bezahlen...face-smile

Besten Dank für eure hilfreichen Antworten!

Gruss
Philipp

Content-Key: 298201

Url: https://administrator.de/contentid/298201

Printed on: April 25, 2024 at 03:04 o'clock

Member: emeriks
emeriks Mar 04, 2016 updated at 14:48:00 (UTC)
Goto Top
Hi,
Kugel sagt: https://support.microsoft.com/en-us/kb/212345
(gesucht mit "PR_SURNAME", erster Treffer ....)

Absatz "What Properties Are Supported?"
Das bezieht sich zwar noch auf Word 2000, aber schau mal, ob Du damit weiterkommst.

E.
Member: ineichp
ineichp Mar 04, 2016 at 14:51:47 (UTC)
Goto Top
Ja Danke...diese Seite habe ich schon gesehen.
Das ganze Korrespondiert mit meiner Anleitung.

Sprich...wie gesagt, das sind alles vordefinerte Properties. Wenn ich nun eine benutzerdefiniertes Feld habe bei meinen Kontakten?
Ich glaube es läuft auf eine Makro-Programmierung raus...kann das jemand?

Danke trotzdem für die Antwort.

Grusss
Phil
Member: emeriks
emeriks Mar 04, 2016 at 15:02:59 (UTC)
Goto Top
Schon mal experimentiert mit ....?
PK_User1, PK_User2 ...
PK_User_1, PK_User_2 ...
PK_Custom1, PK_Custom2 ...
PK_Custom_1, PK_Custom_2 ...
Mitglied: 114757
114757 Mar 04, 2016 at 15:48:59 (UTC)
Goto Top
Ich glaube es läuft auf eine Makro-Programmierung raus...kann das jemand?
Kann man, einfach ein Outlook-Objekt erstellen dann den Adressbuchordner referenzieren, den Kontakt auswählen und über die Userproperties-Eigenschaft das Feld abfragen. Dann das ganze ins Dokument schreiben fertig. Im Dokument kann man sich Bookmarks setzen welche man dann via Code mit den Daten füllt. Keine große Sache.

Gruß jodel32
Member: colinardo
colinardo Mar 04, 2016, updated at Mar 07, 2016 at 17:00:48 (UTC)
Goto Top
Hallo Philipp,
hier ein Beispiel das mit einem Makro arbeitet und das auf sämtliche Eigenschaften des Kontakts Zugriff hat.
add_contact_custom_field_298201.docm

Das aussehen des Blocks und welche Eigenschaften du brauchst, kannst du im Code festlegen.

Für das Beispiel legst du den Namen der benutzerdefinierten Eigenschaft in einer Konstanten im Code fest.
Weitere Kommentare stehen im Quelltext des Dokuments.

Dem Spieltrieb sind hier keine Grenzen gesetzt face-smile

Hier ergänzend noch der Quelltext:
Sub ShowAddressBook()
    Dim objOL As Object, m As Object, strCustomField As String, strDaten As String
    'Name des benutzerdefinierten Feldes hier anpassen  
    '>>>>>>  
    Const CUSTOMFIELDNAME = "Demofeld"  
    '<<<<<<<  
    
    'Outlook Object holen  
    Set objOL = GetObject(, "Outlook.Application")  
    If objOL Is Nothing Then
        Set objOL = CreateObject("Outlook.Application")  
    End If
    'Dialog fix (bring to front)  
    For Each objExplorer In objOL.Explorers
        objExplorer.WindowState = 1
    Next
    Set m = objOL.CreateItem(0)
    m.Display False
    m.Close 1
    '-----  
    'Addressbuchdialog einrichten  
    With objOL.Session.GetSelectNamesDialog
        'Einzel-Kontaktauswahlmodus  
        .SetDefaultDisplayMode 7
        ' Dialog anzeigen  
        If .Display Then
            'Kontakt von Recipient auflösen  
            Set contact = .Recipients.Item(1).AddressEntry.GetContact
            If Not contact Is Nothing Then
                With contact
                    'Benutzerdefniertes Feld auslesen wenn es vorhanden ist  
                    If Not .Userproperties.Find(CUSTOMFIELDNAME, True) Is Nothing Then
                        strCustomField = .Userproperties.Item(CUSTOMFIELDNAME).Value
                    Else
                        strCustomField = ""  
                    End If
                    'Daten des Kontakts für die Ausgabe aufbereiten  
                    strDaten = .FirstName & " " & .Lastname & vbNewLine & _  
                                .HomeAddressStreet & vbNewLine & _
                                .HomeAddressPostalCode & " " & .HomeAddressCity & vbNewLine & _  
                                strCustomField & vbNewLine
                    'Text an aktueller Position einfügen  
                    Selection.Text = strDaten
                End With
            Else
                'Es wurde kein zugeordneter Kontakt für den Eintrag gefunden  
                MsgBox "Es wurde kein zugeordneter Kontakt gefunden", vbExclamation  
            End If
        End If
    End With
End Sub
Viel Spaß damit
Grüße Uwe

Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Member: ineichp
ineichp Mar 07, 2016 at 16:17:44 (UTC)
Goto Top
Super...sache...Danke!
Nur noch eine kleine Frage oder Anmerkung:
Bei Aufruf von Outlook, springt alles zum Outlook und des Adressbuch geht dort auf.
Kann man das so erarbeiten, das im Word einfach der Dialogbox vom Addressbuch öffnet?
Danke und Gruss
Phil
Member: colinardo
colinardo Mar 07, 2016 updated at 17:04:30 (UTC)
Goto Top
Zitat von @ineichp:
Super...sache...Danke!
Bitte face-wink
Nur noch eine kleine Frage oder Anmerkung:
Bei Aufruf von Outlook, springt alles zum Outlook und des Adressbuch geht dort auf.
Kann man das so erarbeiten, das im Word einfach der Dialogbox vom Addressbuch öffnet?
Das liegt daran das der Dialog zum Outlook-Prozess gehört. Ein Workaround besteht darin alle offenen Explorer-Fenster automatisch vorher zu minimieren. Habe das mal oben in den Code eingepflegt.

Wenn das nicht gewünscht ist sollte man über einen eigenen Kontakte-Dialog in Word selber nachdenken. Habe ich in solchen Fällen auch schon einige mal gemacht. Simpler Dialog der alle Kontakte in einer kleinen Listbox auflistet.

Grüße Uwe