Outlook 2016. Обращение к адресату по имени

Обращение к адресату по имени

Однажды мне надоело в каждом письме вводить: «Доброе утро, Иван», «Добрый день, Петр», и т.п. И решил я автомтизировать этот процесс.

Накидал себе небольшое техническое задание, которое содержало пункты:

  1. До 12:00 пишем «доброе утро», с 12 до 18 — «добрый день», а после 18 — «добрый вечер».
  2. Если получателей письма несколько, то обращаемся «коллеги».
  3. Дополнительно проверяем, заполнена ли тема письма.
  4. Обращаемся ко всем по сохраненному псевдониму.

И приступил к разработке макроса.

В итоге получиловь вот что:

Как добавить этот макрос в MS Outlook?

1. Заходим в меню «Файл — Параметры — Настроить ленту» и включаем вкладку «Разработчик»:

Параметры Outlook

2. Запускаем редактор Visual Basic в меню «Разработчик — Visual Basic»:

  Запуск редактора Visual Basic в MS Outlook

3. Вставляем код макроса в модуль «ThisOutlookSession»:

Макросы в Visual Basic

4. Создаем новое письмо, пишем текст, нажимаем кнопку «Отправить», программа спросит:

Если псевдоним не задан

5. Нажимаем «Отмена», вводим псевдоним:

  Вводим Псевдоним

6. Письмо заполняется автоматически:

  В письме заполняется обращение

7. Все псевдонимы хранятся в специальной папке «Обращения» в Заметках:

  Псевдонимы храняться в заметказ, в папке "Обращения"

Особая благодарность Константину Кузьмину.

Файлы для скачивания

Реклама

18 комментариев к “Outlook 2016. Обращение к адресату по имени”

  1. Добрый день,
    попробовал ваш код. В конце не хватало одного IF. Переносы строк «_» интерпретированы ка ошибки пришлось убрать. Далее появляется запрос на добавление приветствия,я его подтверждаю, но приветствие не добавляется, а далее письмо просто уходит без приветствия. У меня Windows 10 и Outlook 2016 (Office 360). Подскажите в чём может быть проблема?

    Ответить
    • Добавил в «Файлы для скачивания» файл «ThisOutlookSession.cls». Это экспорт полностью рабочего модуля, который я использую сейчас (Windows 10, Outlook 2016). Попробуйте загрузить его через меню «Файл — Импорт файла».

      Ответить
  2. Не работает, ни код в тексте статьи (шипет ошибка как писали выше) ни импорт вашего вложения, письма остаются без изменений

    Ответить
    • Нужно смотреть отладчиком. Возможно код не совместим с вашей версией Аутлука (к сожалению, проверить не на чем). Какие вопросы задает программа перед отправкой письма и как вы на них отвечаете?

      Ответить
  3. Супер, то что нужно!
    а можно сделать интеграцию с корпоративной адресной книгой?

    Ответить
    • Пожалуйста.

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

      Поищите специалиста, который специализируется на VB. Либо сами попробуйте. Если опыт программирования есть — должно получиться. Все языки программирования похожи.

      Ответить
    • Я сделал таким образом
      ‘ получаем имя и отчество из глобального списка
      Dim NameGlobal As String
      NameGlobal = Mid(Item.To, InStr(Item.To, » «) + 1)

      и перед строкой (‘ Получяем приветствие, если его нет в заметках) добавил
      ‘ Если нет сохраненного обращения — берем из глобального списка Имя и Отчество
      If Obr = «» Then
      Obr = NameGlobal
      End If

      Ответить
  4. С новым годом!
    Nicholas можете скинуть образ оутлука 2016, под который вы делали . Обращение к адресату по имени
    2245069@mail.ru

    Ответить
    • Добрый день, Сергей.

      Спасибо за поздравления. Вас тоже с новым годом! К сожалению, образа у меня сейчас нет. Уверен, что его будет не сложно найти на просторах интернета.

      Проверено скрипт работает на Outlook 2013 и 2016. Возможно и на более высоких версиях будет работать (не проверял).

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

      Ответить
  5. Спасибо за статью. С новым 2025 годом!

    Вместо последней строки «End If» блока:

    ‘ Добавляем слова приветствия в обращение,

    ‘ проверяем не добавлены ли уже слова с самого начала и после 2 энтеров

    If (Not Item.Body Like Privet_search) And _

    (Not Item.Body Like Chr(160) + Chr(13) + Chr(10) + Chr(13) + Chr(10) + _

    Chr(160) + Chr(13) + Chr(10) + Chr(13) + Chr(10) + Privet_search) Then

    PrivetOrNot = MsgBox(«Добавить приветствие?», vbYesNoCancel)

    If PrivetOrNot = vbNo Then

    GoTo exi

    ElseIf PrivetOrNot = vbCancel Then

    Cancel = True

    GoTo exi

    End If

    Ставим «ElseIf PrivetOrNot = vbYes Then»

    ‘ Добавляем слова приветствия в обращение,

    ‘ проверяем не добавлены ли уже слова с самого начала и после 2 энтеров

    If (Not Item.Body Like Privet_search) And (Not Item.Body Like Chr(160) + Chr(13) + Chr(10) + Chr(13) + Chr(10) + Chr(160) + Chr(13) + Chr(10) + Chr(13) + Chr(10) + Privet_search) Then PrivetOrNot = MsgBox(«Добавить приветствие?», vbYesNoCancel)

    If PrivetOrNot = vbNo Then

    GoTo exi

    ElseIf PrivetOrNot = vbCancel Then

    Cancel = True

    GoTo exi

    ElseIf PrivetOrNot = vbYes Then

    И заработало, но так и не подтягивает с адресной книги имя и отчество хотя элементы такие есть и в карточке заполнены.
    Помогло решение Виталия, вставил вместо блока поиск его код. Но маленько поломал генерацию заметок, тянет сразу оба И.О.
    Версия outlook 14.07268.5000(64) из 10го офиса.

    Ответить

Оставьте комментарий