Для поддержания порядка в адресной книге Microsoft Outlook, время от времени её необходимо чистить, то есть удалять лишние, ставшие уже ненужными контакты. Просмотреть адресную книгу и вручную удалить выбранные контакты несложно, когда контактов немного. В случае, когда контактов в адресной книге много, выборочное удаление контактов можно осуществить макросом.

Как удалить контакты адресной книги средствами Outlook?

Для удаления контактов адресной книги стандартными средствами Outlook, необходимо зайти в адресную книгу, при помощи клавиш Shift и/или Ctrl выделить контакты для удаления и нажать кнопку "Delete" на клавиатуре либо сочетание клавиш Ctrl+D, можно также зайти в меню "Файл" и выбрать пункт "Удалить".

как удалить контакты адресной книги Outlook

Макрос Outlook для удаления всех контактов из заданной папки

Представленный ниже макрос удаляет абсолютно все контакты из выбранной вами папки. При использовании этого макроса будьте внимательны, чтобы по неосторожности не удалить нужные вам контакты.

Sub Udalenie_kontaktov_po_usloviyu()
    Dim myNameSpace As NameSpace
    Dim myFolder As MAPIFolder
    Dim myWorkFolder As MAPIFolder
    Dim iContact As ContactItem
    Set myNameSpace = Application.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
   'Set myWorkFolder = myFolder.Folders("ИмяВашейПапки")
   'в случае, если нужна папка внутри дефолтной
    Set myWorkFolder = myFolder
        For Each iContact In myWorkFolder.Items
            iContact.Delete
        Next iContact
End Sub

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок knopka_view_source в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса).

Макрос Outlook для удаления контактов адресной книги по условию

Если предприятие имеет свой почтовый сервер, то работники этого предприятия, как правило, имеют похожие адреса электронной почты, то есть, пользовательское имя (то что до символа @) в таких адресах различается, а доменное имя сервера (то что после символа @) у всех одинаковое.

В случае, если такое предприятие по каким-либо причинам, перестает быть клиентом предприятия на котором работаете вы, то и контакты, сохраненные в вашей адресной книге становятся бесполезными и удалить их можно все разом при помощи макроса.

Макрос для Outlook, представленный ниже, осуществляет перебор всех контактов из папки "Контакты" и удаляет те из них, которые содержат в адресе электронной почты заданные символы. Поиск и сравнение с заданной комбинацией символов осуществляется при помощи оператора Like. В результате действия макроса будут удалены только те контакты, которые содержат сочетание "yandex" в адресах электронной почты. 

Sub Udalenie_kontaktov_po_usloviyu()
    Dim myNameSpace As NameSpace
    Dim myFolder As MAPIFolder
    Dim myWorkFolder As MAPIFolder
    Dim iContact As ContactItem
    Set myNameSpace = Application.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
   'Set myWorkFolder = myFolder.Folders("ИмяВашейПапки")
   'в случае, если нужна папка внутри дефолтной
    Set myWorkFolder = myFolder
        For Each iContact In myWorkFolder.Items
            If iContact.Email1Address Like "*yandex*" Then iContact.Delete
        Next iContact
End Sub