topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday December 13, 2024, 9:49 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: Looking for a utility to safely remove duplicate contacts from Microsoft Outlook  (Read 14451 times)

patteo

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 437
    • View Profile
    • Read more about this member.
    • Donate to Member
I use Microsoft Outlook to maintain contacts. I also use Pocket Informant on the PocketPC and synchronize on a regular basis.

Somehow, along the way, I get a bunch of duplicate contacts in Microsoft Outlook.

Short of going through a long list of contacts to delete the duplicates, I'm looking for a safe way to delete these duplicates.

Preferably, the software should be able to highlight the differences in the seemingly duplicate contacts so that where necessary, I can merge the details into one Contact and delete the superflous duplicate.

Of course it would be nice if there's a freeware version.

Carol Haynes

  • Waffles for England (patent pending)
  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 8,069
    • View Profile
    • Donate to Member
Don't know the answer but I would be interested too ...

Another useful tool would be to remove duplicate copies of emails.

kimmchii

  • Honorary Member
  • Joined in 2005
  • **
  • Posts: 360
    • View Profile
    • Donate to Member
go here: http://www.slipstick.com/addins/mail.htm

scroll down to Duplicate Checkers, the last one is free:

Removes duplicate items from Calendar, Tasks, Contacts, Notes, and mail folders. Free, written by Fr. Simon Rundell and formerly hosted at www.hlyspirit.org.uk.

If you find a good solution and become attached to it, the solution may become your next problem.
~Robert Anthony

patteo

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 437
    • View Profile
    • Read more about this member.
    • Donate to Member
go here: http://www.slipstick.com/addins/mail.htm

scroll down to Duplicate Checkers, the last one is free:

Removes duplicate items from Calendar, Tasks, Contacts, Notes, and mail folders. Free, written by Fr. Simon Rundell and formerly hosted at www.hlyspirit.org.uk.



Thanks Kiimchi

Yes, www.slipstick.com is a great resource for Outlook users.

I was aware of that one although I have not tested it. I cannot remember why except that I may have read somewhere on some forum that did not give it a positive review.

Besides www.slipstick.com 's listing, I came across another one which looks promising at
http://www.teamscope...ilities.asp#scrubber

It's free for the first 1000 contacts.

There's also another site for Outlook add-ins at www.mapistore.com where I did a search

MapiStore.com | Advanced Search
"1-10, 49 total, on "duplicate contacts" (0.33 seconds)"
http://www.mapistore...10&search=Search+...

Anyway, cleaning up duplicate contacts can be a bit challenging if the clean-up software does not work properly.

I will have to backup the file first and work through this one carefully and slowly.

Of course I would appreciate if anyone has actual experience with any of the software mentioned.

Carol Haynes

  • Waffles for England (patent pending)
  • Global Moderator
  • Joined in 2005
  • *****
  • Posts: 8,069
    • View Profile
    • Donate to Member
The MAPILab one looks really good (I have now got copies of both plugins - they do one for emails and one for everything else).

They have loads of options from deleting duplicates to moving them to a folder of your choice or even just flagging the copies.

You can set the order of priority so that emails (etc) in one folder are considered more important than emails in other folders (in a list hierarchy format) so that you can scan multiple folders and have duplicates flagged in the correct folders. You can specify any number of folders to scan (from 1 to as many as you like).

Not sure but I think you can also scan multiple PST files (haven't tried it yet - but I can't see why not).

OK it isn't free but it looks robust and MAPILab produce solid software.

Darwin

  • Charter Member
  • Joined in 2005
  • ***
  • Posts: 6,984
    • View Profile
    • Donate to Member
I actually purchased a couple of the mapistore apps (duplicate email cleaner and duplicate contacts cleaner) and wound up going back to them for a refund because with the plug-ins installed my Outlook RAM usage went from ~35MB to well over 180 and I couldn't "tame" this behaviour. They may have cleaned up their resource usage as this was over a year ago.

Added in edit: Sounds like they have revised these plug-ins - maybe I should take another look because, as Carol notes, the feature set is impressive and had it not been for the resource use, I would have kept 'em...
« Last Edit: September 12, 2006, 12:30 PM by Darwin »

vixay

  • Supporting Member
  • Joined in 2006
  • **
  • Posts: 140
  • ViXaY
    • View Profile
    • Donate to Member
For the programmatically inclined. Here's some VBA code i found some while back on the net and i edited it, added some comments ...etc. I like this method the best, as it is non-destructive and upto you what you do with it. I have used it successfully and i love it! Also include is some other code that you can try out... and using the template you can do any of your own operations if you know VBA...!

How to use?

1) Copy Code below
2) Open outlook, Tools>Macro>Visual Basic Editor (Alt + F11)
3) Insert new module
or * Alternatively you can import the attached file  "MarkTools.bas" and skip to step 7
4) Paste Code
5) Save
6) Close VBE

7) Tools>Macro>Run Macro (Alt + F8)
8) Choose "MarkDuplicateContacts"
9) Now goto your contacts folder
10) Add the column/field "FTP Site"
11) Group by that column
12) All FTP Sites that say "DELETE.ME.I.AM.A.DUPE" can be safely deleted/moved to another folder

13) You are done!


Attribute VB_Name = "MarkTools"
Public Sub MarkDuplicateContacts()
Dim oldcontact As ContactItem, newcontact As ContactItem, j As Integer
Dim lCount As Long
Set mynamespace = GetNamespace("MAPI")
Set myfolder = mynamespace.GetDefaultFolder(olFolderContacts)
Set myitems = myfolder.Items
'Sort Contacts
myitems.Sort "[File As]", olDescending
totalcount = myitems.Count
j = 1
'Find first valid contact
While ((j < totalcount) And (myitems(j).Class <> olContact))
  j = j + 1
Wend
Set oldcontact = myitems(j)
'Process each contact from there on
'This loop compares only contacts before and after the current one
'since the list is sorted, this should work correctly as contacts
'with the same name WILL be next to each other
'This is a standard linear algorithm with a performance of O(N) (in Big O notation)
'(or so i think :))
For i = j + 1 To totalcount
  If (myitems(i).Class = olContact) Then
    Set newcontact = myitems(i)
    'if((newcontact.lastmodificationtime = oldcontact.lastmodificationtime) and
    If ((newcontact.LastNameAndFirstName = oldcontact.LastNameAndFirstName) And _
        (newcontact.FileAs = oldcontact.FileAs) And _
        (newcontact.PagerNumber = oldcontact.PagerNumber) And _
        (newcontact.HomeTelephoneNumber = oldcontact.HomeTelephoneNumber) And _
        (newcontact.BusinessTelephoneNumber = oldcontact.BusinessTelephoneNumber) And _
        (newcontact.BusinessAddress = oldcontact.BusinessAddress) And _
        (newcontact.Email1Address = oldcontact.Email1Address) And _
        (newcontact.HomeAddress = oldcontact.HomeAddress) And _
        (newcontact.CompanyName = oldcontact.CompanyName)) Then
      'use FTPSite as a flag to mark duplicates
      newcontact.FTPSite = "DELETE.ME.I.AM.A.DUPE"
      newcontact.Save
      lCount = lCount + 1
    End If
    Set oldcontact = newcontact
  End If
Next i
MsgBox lCount & " Duplicate contacts found."
End Sub

Public Sub MarkBlankNumberContacts()
Dim oldcontact As ContactItem, newcontact As ContactItem, j As Integer
Dim lCount As Long
Set mynamespace = GetNamespace("MAPI")
Set myfolder = mynamespace.GetDefaultFolder(olFolderContacts)
Set myitems = myfolder.Items
'Sort Contacts
myitems.Sort "[File As]", olDescending
totalcount = myitems.Count
j = 1
l = 0
'Find first valid contact
While ((j < totalcount) And (myitems(j).Class <> olContact))
  j = j + 1
Wend
'Process each contact from there on
'Check if ALL the possible phone number fields are blank...
'IF and only IF all are blank then can we mark the contact
For i = j + 1 To totalcount
  If (myitems(i).Class = olContact) Then
    Set newcontact = myitems(i)
    If ((newcontact.AssistantTelephoneNumber = vbNullString) And _
        (newcontact.BusinessFaxNumber = vbNullString) And _
        (newcontact.BusinessTelephoneNumber = vbNullString) And _
        (newcontact.Business2TelephoneNumber = vbNullString) And _
        (newcontact.CarTelephoneNumber = vbNullString) And _
        (newcontact.CompanyMainTelephoneNumber = vbNullString) And _
        (newcontact.HomeFaxNumber = vbNullString) And _
        (newcontact.HomeTelephoneNumber = vbNullString) And _
        (newcontact.Home2TelephoneNumber = vbNullString) And _
        (newcontact.MobileTelephoneNumber = vbNullString) And _
        (newcontact.OtherFaxNumber = vbNullString) And _
        (newcontact.OtherTelephoneNumber = vbNullString) And _
        (newcontact.PrimaryTelephoneNumber = vbNullString) And _
        (newcontact.RadioTelephoneNumber = vbNullString) And _
        (newcontact.PagerNumber = vbNullString)) Then
      'use FTPSite as a flag to mark Deletion
      newcontact.FTPSite = "DELETE.ME.NO.NUMBERS"
      newcontact.Save
      lCount = lCount + 1
    End If
  End If
Next i
MsgBox lCount & " Contacts with no numbers found."
End Sub

Sub DisplayViewDef()
'Displays the XML definition of a View object

    Dim olApp As Outlook.Application
    Dim objName As Outlook.NameSpace
    Dim objViews As Outlook.Views
    Dim objView As Outlook.View

    Set olApp = New Outlook.Application
    Set objName = olApp.GetNamespace("MAPI")
    Set objViews = objName.GetDefaultFolder(olFolderInbox).Views
     
    'Return a view called Table View if it already exists, else create one
    Set objView = objViews.Item("Table View")
    If objView Is Nothing Then
          Set objView = objViews.Add("Table View", olTableView, olViewSaveOptionAllFoldersOfType)
    End If
    MsgBox olApp.ActiveExplorer.CurrentView.XML
    MsgBox objView.XML
End Sub
"Drunk on the Nectar of Life!" -me

lh66

  • Participant
  • Joined in 2011
  • *
  • default avatar
  • Posts: 1
    • View Profile
    • Donate to Member
I would recommend trying out http://www.scrubly.com to remove duplicates. They have a free option to try out