Wyszukiwanie adresu w listach dystrybucyjnych
Udostępnij Follow CodeTwo on Facebook Follow CodeTwo on Twitter
Artykuł dotyczy: Microsoft Outlook 2000/2002/2003

Jeśli posiadasz kilka list dystrybucyjnych w Outlook'u, które zawierają dużo kontaktów, to zarządzanie nimi może stać się trudne - zwłaszcza, gdy często zmienia się ich zawartość. Zazwyczaj dosyć dużym problemem jest to, że gdy usuwasz kontakt w Outlook'u, to nie jest on automatycznie usuwany z list dystrybucyjnych.

Poniższe makro wyszukuje we wszystkich listach dystrybucyjnych z bieżącego foldera podany adres e-mail. Po zakończeniu wyszukiwania wyświetla nazwy list, w których został on znaleziony. Dzięki temu możesz szybko sprawdzić wszystkie listy, na jakich znajduje się dany kontakt.
Sub SearchInDistLists()

    On Error Resume Next

    Dim oFolder As MAPIFolder
    Set oFolder = Application.ActiveExplorer.CurrentFolder
    
    ' Zapytaj o adres SMTP do wyszukania
    Dim strSearchAddress As String
    strSearchAddress = InputBox("Podaj adres SMTP do wyszukania w listach dystrybucyjnych w tym folderze.")
    If InStr(strSearchAddress, "@") < 1 Then
        MsgBox "Błędny adres SMTP"
        Exit Sub
    End If
    
    Dim strDistListNames As String
        
    ' Dla każdego elementu w folderze
    For Each item In oFolder.Items
    
        Dim oDistList As DistListItem
        Set oDistList = item
        If Not oDistList Is Nothing Then
            
            For nIndex = 1 To oDistList.MemberCount
                If UCase(oDistList.GetMember(nIndex).Address) = UCase(strSearchAddress) Then
                    strDistListNames = strDistListNames & oDistList.DLName & vbCrLf
                    Exit For    ' adres znaleziony
                End If
            Next
            
        End If
    Next
    
    ' Wyświetl wyniki
    If strDistListNames <> "" Then
        MsgBox "Adres '" & strSearchAddress & "' znaleziono w następujących listach dystrybucyjnych:" & _
                vbCrLf & vbCrLf & strDistListNames, vbInformation
    Else
        MsgBox "Adresu '" & strSearchAddress & "' nie znaleziono na żadnej liście dystrybucyjnej w tym folderze.", vbInformation
    End If

End Sub



Jeśli masz jakieś pytania lub komentarze dotyczące tego artykułu, napisz na forum.

(c) 2006 CodeTwo
Wszelkie prawa zastrzeżone. Artykuł ten nie może być kopiowany i/lub publikowana bez wyraźnej zgody autora. Firma CodeTwo nie rości sobie jednak żadnych praw do zaprezentowanego tu kodu, może on być modyfikowany i wykorzystywany dla dowolnych celów. Firma CodeTwo nie daje żadnych gwarancji oraz nie ponosi żadnej odpowiedzialności za działanie powyższego kodu.