VBATools

Usunięcie pustych kontaktów

by on Oct.15, 2010, under Outlook, Porady

Niejednokrotnie po imporcie kontaktów z telefonu komórkowego czy podczas synchronizacji obiektów z dodatkami do Outlooka, stajemy się posiadaczami pustych kontaktów. Kontakt taki oprócz nazwy wyświetlanej (lub wypełnionego pola „Imię”, „Nazwisko” czy „Nazwa firmy”) nie posiada nic więcej.

Użyteczność pustego kontaktu jest żadna. Bez adresu email czy telefonu obiekt taki jest tylko śmieciem zalegającym w naszych zasobach migrując beztrosko pomiędzy naszymi bazami.

Poniższa procedura wyszukuje takie kontakty oraz usuwa z „Folderu kontaktów” (czy innego), umieszczając je w folderze „Elementy usunięte” – aby można było przed jego opróżnieniem pożegnać się z nimi na dobre.

Option Explicit

Sub ContactFolderCleaner()
'MVP OShon from VBATools.pl
Dim oContactFolder As MAPIFolder, y&: y = 0
Dim item As Object, x&: x = 0
Set oContactFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
'można dodać parametr .Folders("Test") aby sprawdzić obiekty z podfolderu
'lub polecenie .PickFolder do wskazania folderu
For y = oContactFolder.Items.Count To 1 Step -1
    DoEvents
    Set item = oContactFolder.Items(y)
    If item.Class = 40 Then
        If EmptyContaktItems(item) = True Then item.Delete: x = x + 1
    End If
Next y
If x > 0 Then
MsgBox "Usunięto " & x & " pustych kontaktów z folderu " & Chr(34) & _
        oContactFolder.Name & Chr(34) & vbCr & _
       "Aby sprawdzić poprawność mechanizmu obiekty zostały umieszczone w folderze ''Elementy usunięte''", _
        vbInformation, "O'Shon from VBATools.pl"
Else
MsgBox "Sprawdzono " & oContactFolder.Items.Count & " kontaktów w folderze " & Chr(34) & _
        oContactFolder.Name & Chr(34) & vbCr & _
       "i nie znaleziono żadnych pustych kontaktów do usunięcia.", _
        vbInformation, "O'Shon from VBATools.pl"
End If
If Not item Is Nothing Then Set item = Nothing
Set oContactFolder = Nothing
End Sub
Function EmptyContaktItems(item As ContactItem) As Boolean
With item
    If Len(Trim( _
        .MailingAddress & _
        .Email1Address & _
        .Email2Address & _
        .Email3Address & _
        .Body & _
        .CompanyMainTelephoneNumber & _
        .BusinessTelephoneNumber & _
        .Business2TelephoneNumber & _
        .CarTelephoneNumber & _
        .HomeTelephoneNumber & _
        .MobileTelephoneNumber & _
        .OtherTelephoneNumber & _
        .PrimaryTelephoneNumber)) = 0 Then EmptyContaktItems = True
End With
End Function

Po wykonaniu procedury otrzymujemy ekran potwierdzający:

Usuniecie-pustych-kontaktow

Rys 1. Ekran potwierdzający usunięcie pustych kontaktów.

Procedurę ta można rozwinąć umieszczając ją w formie z paskiem postępu.

Aby osadzić procedurę „ContactFolderCleaner” pod przyciskiem w menu MS Outlook, polecam uwadze ten artykuł.

 

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

Niejednokrotnie po imporcie kontaktów z telefonu komórkowego czy podczas synchronizacji obiektów z dodatkami do Outlooka, stajemy się posiadaczami pustych kontaktów. Kontakt taki oprócz nazwy wyświetlanej (lub wypełnionego pola „Imię”, „Nazwisko” czy „Nazwa firmy”) nie posiada nic więcej.Użyteczność pustego kontaktu jest żadna. Bez adresu email czy telefonu obiekt taki jest tylko śmieciem zalegającym w naszych zasobach migrując beztrosko pomiędzy naszymi bazami.Poniższa procedura wyszukuje takie kontakty oraz usuwa z „Folderu kontaktów” (czy innego), umieszczając je w folderze „Elementy usunięte” – aby można było przed jego opróżnieniem pożegnać się z nimi na dobre.

Niejednokrotnie po imporcie kontaktów z telefonu komórkowego czy podczas synchronizacji obiektów z dodatkami do Outlooka, stajemy się posiadaczami pustych kontaktów. Kontakt taki oprócz nazwy wyświetlanej (lub wypełnionego pola „Imię”, „Nazwisko” czy „Nazwa firmy”) nie posiada nic więcej.

Użyteczność pustego kontaktu jest żadna. Bez adresu email czy telefonu obiekt taki jest tylko śmieciem zalegającym w naszych zasobach migrując beztrosko pomiędzy naszymi bazami.

Poniższa procedura wyszukuje takie kontakty oraz usuwa z „Folderu kontaktów” (czy innego), umieszczając je w folderze „Elementy usunięte” – aby można było przed jego opróżnieniem pożegnać się z nimi na dobre.

:, , , , ,

Leave a Reply