Как написать макрос в outlook
Перейти к содержимому

Как написать макрос в outlook

  • автор:

Простые шаблоны писем в MS Outlook VBA

Небольшой рецепт на MS VB для сисадминов, которые хотят упростить жизнь сотрудникам.

Задача: девочка на reception периодически отправляет официальные анонсы всей компании. При этом дизайн, нарисованный дизайнером есть, а процесс отправки находится в состоянии вплоть до «отыскать старое письмо в отправленных, нажать переслать всем, отредактировать текст и тему письма, отправить».

Есть два способа:
Шаблоны — подойдет для простых вариантов, когда все поля статичны
VBA — под катом рассмотрим пример создания простейшего шаблона на встроенном в Outlook Visual Basic.

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

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

Верстка письма в Outlook идет в HTML, и ниже — инструкция и пример простого кода, который создает письмо, аттачит две картинки с логотипами, форматирует html-тело письма, прописывает поля письма.

  • Запускаем редактор макросов в Outlook (Alt+F11)
  • Создаем новый модуль
    image
  • Пишем код
  • 4. Добавляем вызов данного макроса в ленту Outlook
  • 5. Профит
    image

Как можно улучшить?
Можно добавиьт несколько inputbox, или форму с radio button, где можно будет выбрать какие-то параметры, выбирая или адресатов, или нужный подвид анонса.
Можно делать поиск по адресной книге outlook (цикл по Outlook.Application.GetNamespace(«MAPI»).AddressLists(«Global Address List»).AddressEntries), и использовать информацию из карточки (имя, проект, контактные данные), создавая персонифицированные письма.
Можно сделать несколько заготовок для разных полей, и выбирать нужное случайно или по дате/времени.

К сожалению, столкнулся с тем, что если просматривать html письма Не в desktop outlook, могут возникать проблемы

Даже родной web-интерфейс exchange по какой-то причине может откусывать части, которые он считаем лишними (у меня он не отображал картинки в заголовке таблицы, хотя отображал фотки сотрудников в той же таблице). Выяснить принцип по которому он выбирал что отображать или нет, я не смог — все файлы аттачились одинаково.
Клиент с мака видит съехавший дизайн, там еще хуже вем в web-интерфейсе.
Причина в том, что exchange переделывает весь html-код и выводит его по своим личным правилам, используя жуткие cpan вместо того, что дизайнил я (div/table. ). Попытки нагуглить решение пока печальные — видимо в текущем exchange это сделать нельзя. Если у вас были успешные решения — поделитесь!

Как создать макрос VBA в Outlook? Особенности редактора Visual Basic в Outlook?

Макросы в Outlook создаются при помощи редактора Visual Basic, аналогично тому, как это делается в Excel или Word. Visual Basic Editor в Outlook имеет такой же внешний вид и основные панели, как к примеру в Word или Excel, но при этом он имеет и принципиальные отличия. В редакторе Visual Basic для Outlook отсутствует макрорекордер, что делает невозможным автоматическую запись действий пользователя с переводом их в программный код. Еще одной особенностью является то, что в Outlook можно работать только с одним экземпляром проекта, который имеет имя VBAProject и расширение .otm. Запускается VBE в Outlook через меню Сервис/Макрос/Редактор Visual Basic либо сочетанием клавиш Alt+F11.

Macros_Outlook

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

Soobschenie

При этом запуск макроса будет заблокирован системой безопасности. Для того чтобы макрос все-таки запустился, Вам будет необходимо изменить уровень безопасности. Для этого нужно зайти в меню Сервис/Макрос/Безопасность

Ponizhenie_bezopasnosti

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

Как написать макрос в outlook

Как отправить письмо из MS Outlook макросом VBA? Программная отправка письма в Outlook

Опубликовано: 24 апреля 2013

Ниже приведен программный код макроса VBA для приложения Microsoft Outlook, позволяющий отправить электронное письмо. Кроме того при отправке сообщений из Outlook макросом можно столкнуться с появлением сообщения следующего содержания "Программа пытается автоматически отправить сообщение от вашего имени. Разрешить это действие? Возможно, это свидетельствует о наличии вируса, и следует выбрать ответ "Нет".

Если при отправке письма макросом, написанным для Outlook, появляется подобное уведомление, это значит, что макросом создается еще одна сессия командой Set objOL = New Outlook.Application

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

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

Также, при помощи Microsoft Outlook, можно отправлять письма из приложения Excel .

Outlook VBA

Outlook из MS Office 2007 поддерживает запуск VB скриптов для обработки сообщений. Возможность обрабатывать сообщения с помощью VisualBasic в Офис встроена давно — еще с версии Office 2000. В данной статье будет продемострировано использование скриптов VBA в Outlook для извлечения из сообщения нужных данных и отправки уведомления на мобильный телефон.

Нам нужен редактор Visual Basic for Applications, встроенный в Outlook.

Запускаем редактор VBA в Outlook

Нажмите Alt-F11, чтобы вызвать его. Другой вариант — вывести на ленту раздел «Разработчик»

Панель Разработчик для Outlook VBA

Outlook VBA

Появится окно редактора Visual Basic for Applications — VBA:

Создаем Outlook VBA скрипт

VBA не предназначен для создания программ, которые можно перенести и развернуть на другом компьютере. Конечно, вы сможете перенести код скрипта на другую машину, но основная функция VB для приложений — автоматизация действий пользователя. Предполагается, что автоматизировать свои действия пользователь будет сам 🙂

В редакторе скрипт можно добавить в новый модуль, а можно в объект ThisOutlookSession. Это скажется только на имени модуля, на который вы затем будете ссылаться, создавая правило.

Вставьте в редактор простой код, чтобы проверить работу скрипта:

Должно получиться так:

Outlook VBA скрипт

Данный код выведет всплывающее окно с темой полученного сообщения

Добавляем правило для запуска Outlook VBA скрипта

Правило создается как обычно.

Выберите, на какое событие будет вызываться скрипт. В данном примере скрипт будет срабатывать на все сообщения, которые адресованы на наш адрес.

Outlook VBA создаем правило

Затем выберите действие «Run a script» и выберите скрипт добавленный в VBA редактор:

Outlook VBA запускаем скрипт

Отправьте себе сообщение. Если при его получении Outlook вы увидели окошко с надписью

и темой письма, все в порядке.

Если VBA скрипт не работает

В моем случае скрипт прекрасно запустился, а затем перестал работать. Если у вас срабатывает правило, но прописанные в скрипте действия не выполняются, возможная причина — настройки безопасности Outlook.

В Outlook 2007 выберите меню Tools | Trust Center и установите macro security в Warn on all macros.

Обработка сообщения и формирование уведомления

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

Но если мы будем просто пересылать email стандартным правилом Outlook, то в SMS могут не попасть нужные нам данные, либо оно может и вовсе не дойти.

Оптимальным вариантом будет сформировать новое сообщение, включив туда только необходимые нам из исходного письма данные, и отправить его.

Для этого можете использовать следующий скрипт

Данный скрипт сформирует и отправит сообщение, в котором будут тема сообщения, а также поля From, To, CC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *