1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Einfügen einer oder aller Adresse(n) aus dem Outlook-Adressbuch in ein Word-Dokument

Discussion in 'Office-Programme' started by wali940, May 3, 2008.

Thread Status:
Not open for further replies.
  1. wali940

    wali940 ROM

    Um Einzeladressen von Outlook nach Word einzufügen gibt es den Befehl „EinfügenAdresse“ bzw. die Möglichkeit einer besseren Formatierung mit Datenfeldern und Autotext. Für weiterreichende Möglichkeiten muss man aber leider noch immer anders vorgehen. Der Code in der schon etwas älteren OutlAdr.dot von http://www.pcwelt.de/downloads/office/word-tools/20031/outladrdot/ verursachte bei mir einen Fehler. Da er jedoch bereits mit dem aktuell gültigen VBA geschrieben wurde vermutete ich, dass nur ein paar Zeilen geändert oder hinzugefügt werden müssten um diesen zu beheben. Ergebnis: Es fehlte eine Prüfung, ob es sich beim jeweiligen Eintrag im Kontakteordner um einen Kontakt oder eine Verteilerliste handelt. Nachfolgend der ergänzte Code (um den lästigen Sicherheitshinweis von Outlook bei Zugriff eines Programms einzustellen verwendet man am Besten das kostenlose „Advanced Security for Outlook“):

    Code:
    Private Sub GetAddressList(myIndex As Integer)
        Dim i As Integer
        Const olFolderContacts = 10
        
        Dim myContactList() As String
        Set ol = CreateObject("Outlook.Application")
        Set nsmapi = ol.GetNamespace("MAPI")
        'Nächste Zeile bezieht sich auf den Standardordner Kontakte
        Set myFolder = nsmapi.GetDefaultFolder(olFolderContacts)
        'es geht aber auch mit jedem anderem Ordner
        'Set myFolder = nsmapi.GetDefaultFolder(olFolderContacts).Folders("Testkontakte")
        'Set myFolder = nsmapi.Folders("Persönliche Ordner").Folders("AlteKontakte")
        NumItems = myFolder.items.Count
        ReDim myContactList(NumItems)
       Set MyItems = myFolder.items
       Select Case myIndex
       
       Case 0
       For i = 1 To NumItems
         Set MyItem = MyItems.Item(i)
        If UCase(Left(MyItem.MessageClass, 11)) = "IPM.CONTACT" Then
         myContactList(i) = MyItems(i).Lastname + "," + MyItems(i).FirstName + Str(i)
        End If
       Next
         WordBasic.SortArray myContactList()
       For i = 1 To NumItems
         Set MyItem = MyItems.Item(i)
        If UCase(Left(MyItem.MessageClass, 11)) = "IPM.CONTACT" Then
         lstName.AddItem (myContactList(i))
        End If
       Next
       
       Case Is > 0
        InsertIntoDoc (MyItems(myIndex).FirstName + " " + MyItems(myIndex).Lastname)
        InsertIntoDoc (MyItems(myIndex).BusinessAddress)
        InsertIntoDoc (MyItems(myIndex).Email1Address)
            
       Case -1
     
     For i = 1 To NumItems
        Set MyItem = MyItems.Item(i)
       If UCase(Left(MyItem.MessageClass, 11)) = "IPM.CONTACT" Then
        InsertIntoDoc (MyItems(i).FirstName + " " + MyItems(i).Lastname)
        InsertIntoDoc (MyItems(i).BusinessAddress)
        InsertIntoDoc (MyItems(i).Email1Address)
       End If
     Next
        
     End Select
    
    Set nsmapi = Nothing
    Set ol = Nothing
    Set MyItem = Nothing
    End Sub
    
     
Thread Status:
Not open for further replies.

Share This Page