Привет.
Сегодня научимся быстро добавлять комментарии к письмам в Microsoft Outlook.
Для чего?
Для удобства поиска нужных писем, для добавления своих заметок к письмам, для использования тегов.
Как?
С помощью небольшого кода Visual Basic for Application (далее будет инструкция).
«Немного истории» и «Какую проблему решаем?»
Долго работал с браузерной почтой Яндекс. Нравится внешний вид без тем оформления. Есть возможность распределения писем по папкам (+ вложенные папки). Объединение писем в диалоги. Метки (они же «теги»). Поиск писем по папкам и меткам одновременно. И еще куча разных мелочей. Одним словом, подходит для комфортной работы с почтой.
Правда, кое-что хотелось бы добавить.
Иногда в работе приходится искать письма 2-х, 3-х, и т.д.-летней давности. При этом не во всех письмах указана тема письма или есть текст письма. И иногда даже подписи в письме нет, и адрес отправителя ничего об авторе не говорит. А, например, вложение в письме полезное. Как его быстро найти? Также, бывают ситуации, когда нужно сделать небольшое пояснение для себя по поводу входящего письма.
Так, в процессе работы не хватало возможности добавлять свои примечания (пояснения, заметки, комментарии) к входящим письмам.
В Яндекс-почте, например, это можно отчасти решить с помощью меток. Но делать метки на все случаи жизни только затруднит применение системы. У меня было настроено 48 меток, из которых, от силы, треть была в активной работе.
В качестве альтернативы для Яндекс-почты я решил рассмотреть Microsoft Outlook 2016 с возможностями гибкой настройки программы.
Да, в Outlook есть возможность делать метки как в Яндексе — «Категории» — но, к сожалению, они не работают, если почта настроена по протоколу IMAP.
В принципе, сложностей в добавлении комментариев в Outlook нет. Но это возможно при отображении писем в табличной форме и при открытии полей писем для редактирования (адрес, тема и т.д.), что лично для меня не удобно. + цепочки писем не должны отображаться как беседы.
Поэтому сейчас научимся добавлять комментарии к письмам при сохранении привлекательного внешнего вида программы и при этом поля писем будут закрыты для «случайного» редактирования.
Поехали!
Первое.
Настраиваем отображение и поле «Комментарий», в которое будем записывать нужную информацию.
1. Открываем вкладку «Вид».
2. Жмем «Настройка представления».
3. В появившемся окне жмем «Другие настройки».
Проверяем, настройки должны быть как на картинке ниже. Снимаем галочку с пункта «редактировать в ячейках», область чтения — справа, другие параметры — галочка на «компактный формат» или «всегда компактный формат». Жмем «ОК».
4. Жмем кнопку «Столбцы».
5. В новом окне выбираем максимальное число строк 3.
6. В выпадающем списке выбираем «Поля пользователя…».
7. Нажимаем «Новый столбец…»
8. Появится окно «Новый столбец». Здесь пишем имя «Комментарий» и жмем «ОК». Значения «Тип» и «Формат» оставляем как «Текст».
8.5:) После нажатия кнопки «ОК» в окне «Отображение столбцов» в поле «Доступные столбцы:» появится только что добавленный пользовательский столбец «Комментарий». Выбираем его, потом нажимаешь кнопку справа «Добавить ->». Теперь в правом списке отображаемых столбцов появится еще слово «Комментарий».
9. Выделяем наше «Комментарий в правом списке и кнопками «Вверх» / «Вниз» располагаем его под полем «Тема». Жмем «ОК».
Что мы сделали? Добавили пользовательское поле/столбец с именем «Комментарий». Здесь будут отображаться все заметки, которые хотим добавить к письмам.
Второе.
Теперь добавим код, который дает возможность добавлять комментарии к письмам. Код нужно будет вставлять в специальный «Модуль» (контейнер для кода), поэтому сначала получим к нему доступ.
Открываем редактор кода Visual Basic for Application — жмем Alt+F11. В окне редактора под пунктом меню «File» нажимаем на черный треугольник и в выпадающем списке выбираем «Module». Или рядом с пунктом меню «File» можно нажать пункт «Insert». Аналогично.
Новый модуль добавится в дерево объектов (см. выше). 2 раза жмем на «Module1». Справа откроется пустое окно, туда вставляем код из окна ниже (со слов Sub test() до End Sub включительно):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Sub test() Dim oMail As Object Dim oUserProp As Outlook.UserProperty Dim myPropField, commNew As String myPropField = "Комментарий" Set oMail = Application.ActiveExplorer.Selection.Item(1) On Error Resume Next commNew = InputBox("Enter comment") Set oUserProp = oMail.UserProperties.Add(myPropField, olText, True) oUserProp.Value = commNew oMail.Save Err.Clear Set oMail = Nothing End Sub |
Сохраняемся:
Третье.
Добавляем на панель быстрого доступа кнопку вызова макроса, который только что сделали.
Жмем на треугольник и в выпадающем меню выбираем «Другие команды».
Появится окно настройки параметров Outlook с выбранной позицией настройки панели быстрого доступа (в окне слева смотри). Далее:
1. Выбираем из выпадающего списка пункт «Макросы».
2. Выбираем наш макрос «Проект1.test» и…
3. Нажимаем «Добавить > >».
4. В правом списке кнопками «↑» и «↓» можно перемещать наш добавленный макрос. Его положение повлияет на номер горячей клавиши, которой он будет вызываться в дальнейшем. Чуть позже об этом.
5. Жмем «ОК».
Теперь смотрим на панель быстрого доступа — там должен появиться вот такой значок (если вы не меняли его при настройке быстрого доступа):
Четвертое.
Осталось немного. Тестируем результат.
Выбираем любое письмо (именно письмо; не беседу, если таковые имеются).
Нажимаем левый Alt и смотрим на панель быстрого доступа. Рядом с иконкой макроса будет цифра (в нашем примере это будет 2). Если нажмем эту цифру (можно одновременно Alt+цифра нажимать), то сработает вызов макроса, появится окно, в которое можно будет ввести информацию и после нажатия «ОК» у выбранного письма появится введенный нами комментарий.
Готово!
Ограничения данного макроса
Как говориться, «есть нюанс…»
Да, данный метод добавления своих заметок к письмам имеет ряд ограничений и неудобств в работе:
1. Не всегда получается добавить комментарий к беседе. Программа начинает ругаться и выдает ошибку. Поэтому применяем только к письмам (можно в составе беседы, но не к самой беседе).
2. При каждом вызове окна для добавления комментария в строке ввода будет пусто. Следовательно, если сразу нажать «ОК», то комментарий исчезнет.
3. По непонятным причинам нельзя подряд ввести 2 и более комментария к письму — информация не обновляется. Остается только первый. Решается так: ввели коммент, выбрали любое другое письмо, выбрали снова первое.
4. Поиск по комментариям не совсем удобный — нужно настраивать расширенный поиск писем, добавлять условия поиска и потом искать нужное письмо в таблице найденных писем.
На этом пока все.
Скажи, тебе пригодилась бы такая возможность в работе — добавлять свои примечания к письмам? Выскажи мнение по всему этому поводу. Дай обратную связь;)
Автор: Овчинников Егор, 23/09/2017
14 комментариев
Сергей · 2 марта, 2018 в 08:59
Огромное спасибо !!! Все работает
Зоя · 6 июня, 2019 в 23:55
Скажите, пожалуйста, как удалить/отредактировать комментарий?
А так — да, всё работает
urc · 13 июня, 2019 в 16:43
Функция работает только в режиме перезаписи комментария.
Т.е. если Вам нужно отредактировать, то придется вызвать макрос еще раз и заново набрать текст с изменениями, которые нужны.
Если Вам нужно удалить комментарий, то вызывайте макрос и оставляйте строку с новым комментарием пустой.
Павел · 27 августа, 2019 в 20:43
Спасибо за статью!
Правильно ли я понимаю, что это будет работать только на одном компе, и на другом компе по imap мы эти комменты не передадим? 🙂
Вдруг есть рабочие инструменты передавать какие либо пометки таким образом, чтобы они были видны на всех устройствах (кроме флажка, который стандартно работает, а те же категории — не работают)
urc · 11 сентября, 2019 в 09:40
Павел, добрый день!
Да, работает данный макрос только локально, на одном компьютере.
В данном случае Вы привязываете комментарии к письмам только у себя и эта информация никак не связана с письмами на сервере.
Возможно, это некое неудобство в плане работы команды, но для одного человека может быть полезно.
ЕА · 3 декабря, 2019 в 09:08
Спасибо
Антонина · 3 декабря, 2019 в 10:35
Отлично! Всё получилось! Спасибо, очень понятно и очень полезно:)
Татьяна · 29 января, 2020 в 09:28
Проработал макрос 2 дня, а потом перестал.
При вызове макроса ничего не происходит, никакой реакции
urc · 29 января, 2020 в 11:57
Татьяна, добрый день!
Возможно, поддержка макросов в Outlook была отключена при запуске программы. Возможно, даже случайно.
Ниже инструкция для Outlook 2016 как включить поддержку макросов:
1. Нажмите «Файл».
2. Нажмите «Параметры».
3. Перейдите в «Центр управления безопасностью».
4. Перейдите в «Параметры макросов».
5. Выберите «Уведомления для всех макросов».
Закройте и снова откройте Outlook.
Должно появиться окно, где можно выбрать либо отключить макросы, либо разрешить их использование.
Выберите по смыслу «Разрешить».
Напишите, помогло ли это решить вопрос или нет.
Татьяна · 6 февраля, 2020 в 10:38
Ссылается «Нарушены границы массива» и в макросе выделяет цветом строку: Set oMail = Application.ActiveExplorer.Selection.Item(1)
urc · 7 февраля, 2020 в 14:51
Татьяна, добрый день!
Такая ошибка может быть, если, например, выбрано не письмо, к которому нужно добавить комментарий, а беседа, в которой содержится нужное письмо.
Обратите внимание на то, что выбрано у вас в списке писем, когда вы запускаете макрос.
Напишите об этом потом.
Татьяна · 10 февраля, 2020 в 16:04
спасибо, все ок 🙂
urc · 11 февраля, 2020 в 11:40
Отлично!
Борис · 24 июля, 2020 в 10:42
Спасибо огромное, супер идея!
Уже несколько лет мучался без этой возможности, а ларчик так просто открывался.
Кстати, вот поправленный макрос, чтобы можно было редактировать комментарий, обнови в посте.
Sub editComment()
Dim oMail As Object
Dim oUserProp As Outlook.UserProperty
Dim myPropField, commNew As String
myPropField = «Комментарий»
Set oMail = Application.ActiveExplorer.Selection.Item(1)
On Error Resume Next
commNew = oMail.UserProperties.Find(myPropField, True).Value
commNew = InputBox(«Комментарий к письму», «Комментарий», commNew)
Set oUserProp = oMail.UserProperties.Add(myPropField, olText, True)
oUserProp.Value = commNew
oMail.Save
Err.Clear
Set oMail = Nothing
End Sub