Использование Visual Basic для приложений в Outlook
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
Visual Basic для приложений (VBA) упрощает управление Microsoft Outlook непосредственно в Microsoft Outlook. С помощью VBA в Outlook вы можете создавать макросы, которые автоматически выполняют сложные и повторяющиеся задачи. Вы также можете разработать код программы, который запускаются в ответ на события Outlook, позволяя автоматизировать часто выполняемые задачи (например, расположение окон при запуске Outlook).
Visual Basic для приложений позволяет вам пользоваться почти всеми преимуществами объектной модели Outlook, включая самый широкий диапазон событий на уровне приложения, без необходимости вызова внешнего приложения (например, другого приложения Microsoft Office или приложения, разработанного с помощью Microsoft Visual Basic). И в отличие от скриптов, разработанных с использованием языка сценариев VBScript, код Outlook в Visual Basic для приложений всегда доступен в приложении; элемент не должен быть открыт для выполнения указанного кода.
Весь код Outlook в Visual Basic для приложений содержится в проекте. Проекта привязывается к определенному пользователю, поэтому все пользователи, запускающие Outlook на компьютере, могут настроить Outlook в соответствии с их нуждами. Проект может содержать модули кода и модулях форм пользователя (обратите внимание, что модули форм пользователя — это не то же самое, что и формы Outlook).
Редактор Visual Basic позволяет создавать и удалять модули, разрабатывать модули форм пользователя или редактировать код в модулях. Данные редактор предоставляет целый ряд полезных инструментов, включая встроенный обозреватель объектов и отладчик, упрощая разработку кода и устранение проблем кодом. Вы можете даже использовать редактор Visual Basic в Outlook, чтобы разрабатывать и тестировать код, который можно скопировать в автономное приложение Visual Basic или в другое приложение Microsoft Office.
Outlook в настоящий момент поддерживает только один проект Visual Basic для приложений, Проект1. Вы не сможете добавить и запустить в редакторе Visual Basic другой проект одновременно. Project1 хранится на вашем жестком диске в виде VbaProject.OTM; каждый пользователь на одном компьютере может иметь копию VbaProject.OTM, сохраненную для него или для нее. На компьютере под управлением Windows XP VbaProject.OTM <drive>находится в папке :\Documents и Параметры<user>\Application Data\Microsoft\Outlook.
Так как вы можете запустить только один проект Visual Basic для приложений за раз, прежде чем запускать другой проект, необходимо выйти из Outlook, переименовать текущий файл VbaProject.OTM, назвать проект, который вы хотите запустить как VbaProject.OTM и перезапустить Outlook, чтобы запустить нужный вам новый проект. При необходимости вы можете также вручную интегрировать проекты для создания одного VbaProject.OTM, что позволит избежать необходимости наименования и переименования файлов.
Код Outlook в Visual Basic для приложений был разработан для создания личной среды для разработки макросов и не предназначен для развертывания или распространения. Чтобы переместить проект с одного компьютера на другой, например, переместить проект с рабочего компьютера на домашний компьютер, вы можете экспортировать формы и модули кода с рабочего компьютера и импортировать их на домашний компьютер. Кроме того, можно также скопировать и вставить исходный код проекта в Project1 на домашнем компьютере с помощью редактора Visual Basic.
Если вы разрабатываете решение, которое планируется для использования несколькими людьми, следует преобразовать ваш код Visual Basic для приложений в надстройку Outlook COM. Однако, разработка надстройки COM обычно требует значительно больших знаний программирования по сравнению с коротким макросом, поэтому если ваш проект Visual Basic для приложений относительно простой, и не слишком много людей будут использовать его, вы можете отправить им код с инструкциями о том, как ее настроить.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Как использовать макросы VBA для сообщений в Outlook 2016 и 2019
Данный материал является переводом оригинальной статьи «EasyTweaks : How to write useful macros in Outlook 2016 and 2019 messages».
В Microsoft Office мы используем возможности Visual Basic for Application
(VBA) для создания пользовательских программ, которые расширяют базовую функциональность Office и помогают экономить время за счет автоматизации повторяющихся задач. Мы называем эти небольшие программы VBA-макросами.В этом руководстве мы хотели бы представить примеры разработки макросов для Outlook. Мы сосредоточимся на изучении основ Outlook VBA для начинающих, научимся создавать простые макросы и рассмотрим некоторые полезные идеи использования макросов. После изучения этого руководства вы сможете разрабатывать и запускать простые макросы VBA для Outlook.
- Сначала основы: мы узнаем, как вставить и сохранить простой настраиваемый макрос VBA в активный сеанс Outlook.
- Затем мы настроим среду разработки макросов.
- Мы рассмотрим самые простые примеры Outlook VBA. Это поможет вам понять основы разработки макросов и позволит писать простые макросы.
- Затем мы определим ярлык для нашего макроса на панели быстрого доступа. Это позволит нам легко запускать макрос.
- И закончим, включив макросы Outlook и обработав их настройки безопасности, чтобы гарантировать, что код действительно будет запускаться при появлении запроса на наших компьютерах.
Можно ли записать макрос в Outlook?
В отличие от других приложений Office, Outlook не предлагает простого Macro recorder для захвата действий пользователя и автогенерации создаваемого кода VBA в фоне. Поэтому, если мы хотим добавить в Outlook свои собственные функции, нам нужно научиться писать простые программы VBA и включать их в сеанс Outlook.
Если вам интересно узнать, как на самом деле работает средство записи макросов Office, рекомендуем изучить MS Word Macros и Excel VBA Macro tutorials.
Написание макроса VBA в Outlook
- Прежде всего откройте Microsoft Outlook.
- Теперь нажмите Alt + F11.
- Откроется интегрированная среда разработки (IDE) разработчика VBA.
- Разверните дерево проекта до узла ThisOutlookSession.
- Щелкните правой кнопкой мыши ThisOutlookSession и нажмите «Вставить».
- Теперь вы вставите модуль Visual Basic. Для этого выберите Module.
- Вставьте свой код VBA в окно модуля.
- Нажмите «File«, затем выберите «Save«.
- Далее, закройте среду разработчика. Это вернет вас в пользовательский интерфейс Outlook.
Прочтите несколько простых примеров кода, которые помогут вам начать работу с VBA. Никогда неосознанно не копируйте код VBA из неизвестных ресурсов!
Как настроить вкладку разработчика в Outlook?
Если вы часто разрабатываете макросы Outlook, вы можете настроить среду разработки Office. Звучит фантастически, не правда ли? На самом деле это довольно простая процедура. Читайте подробности:
Откройте Outlook, правой кнопкой мыши щелкните на верхней части Ленты (Ribbon) и выберите Customize the Ribbon.
Отметьте пункт Developer и нажмите OK.
Теперь вы найдете меню Developer на Ленте.
Полезные примеры Outlook VBA
Создание электронного сообщения
Этот простой фрагмент кода программно создает новый элемент сообщения электронной почты..
Сценарий начинается с создания почтового элемента Outlook, затем он устанавливает поля «Кому» (To), «Тема» (Subject), «Основной текст» (Body) и «Копия» (CC). Наконец, он отображает сообщение в Outlook, чтобы вы могли просмотреть и отправить его вручную.
Public Sub CreateMail() Dim MyEmail As MailItem ' Create a new Outlook message item programatically Set MyEmail = Application.CreateItem(olMailItem) 'Set your new message to, subject, body text and cc fields. With MyEmail 'Кому .To = "[email protected]" 'Тема .Subject = "Insert your message subject here" 'Текст .Body = "Insert your email text body here" 'Копия .CC = "[email protected]" End With MyEmail.Display End Sub
Вы можете использовать предопределенные шаблоны Outlook при определении новых писем с помощью VBA. Для этого вам нужно использовать метод CreateItemFromTemplate и указать расположение файла шаблона Outlook (*.oft).
Отправка электронного письма программно
Если вы хотите, чтобы Outlook отправлял только что созданное электронное письмо автоматически, вы можете добавить следующую строку в код, опубликованный выше. Вставьте следующую строку прямо перед оператором End Sub предыдущего фрагмента:
MyEmail.Send
Прикрепление файла к электронному письму
Во многих случаях вы хотели бы автоматизировать отправку электронного письма с прикрепленным к нему файлом. Это может быть документ Word, электронная таблица Excel, презентация PowerPoint, документы PDF и т.д.
Если вы хотите программно отправить электронное письмо с вложениями, используйте такой код:
Public Sub CreateMailWAttach() ' VBA Code Dim MyEmail As MailItem ' Create a new Outlook message item programatically Set MyEmail = Application. CreateItem(olMailItem) 'Define your attachment folder path and file name - modify this part as needed Dim AttachFolder, AttachFile As String AttachFolder = "C:\temp\" AttachFile = "Dummy.zip" 'Set your new message to, subject, body text and cc fields. With MyEmail .To = "[email protected]; [email protected]" .Subject = "This is your message subject" .Body = "Insert your email text body here" .CC = "cc@my_server.com" .Attachments.Add AttachFolder & AttachFile End With MyEmail.Display ' MyEmail.Send End Sub
Убедитесь, что вы указали правильный путь и имя файла вложения во фрагменте.
В этом примере установлены несколько получателей для электронного письма, при необходимости измените настройки.
Создание задачи через VBA
Следующий фрагмент кода создает задачу Outlook, назначает ее другому лицу и устанавливает тему задачи и основной текст.
Public Sub CreateTask() Dim MyTask As TaskItem ' Create a new Outlook task Set MyTask = Application.Сохранение в формате HTMLCreateItem(olTaskItem) 'Set your new task recipients and information fields With MyTask .Assign .Recipients.Add "taskrecipient@my_server.com" .Subject = "This is your task subject" .Body = "Insert a thorough explanation of your task here." End With MyTask.Display End Sub
Некоторые читатели спрашивали, как автоматизировать сохранение писем в HTML. Приведенный ниже код выполняет именно это.
Public Sub SaveAsHTML() On Error Resume Next Dim MyWindow As Outlook.Inspector Dim MyItem As MailItem Dim FilePath As String FilePath = Environ("HOMEPATH") & "\Documents\" & "\" Dim ItemName As String Set MyWindow = Application.ActiveInspector If TypeName(MyWindow) = "Nothing" Then MsgBox ("Kindly open an email to save") Else Set MyItem = MyWindow.CurrentItem ItemName = MyItem.Subject ' File name will be identical to the message subject! With MyItem .SaveAs FilePath & ItemName & ".html", olHTML End With End If End Sub
Убедитесь, что вы запускаете этот код только в электронных письмах, открытых в Outlook (не в представлении «Входящие»/»Проводник»)!
Вопросы по макросам Outlook
Где в Outlook хранятся макросы?Вы можете не знать, где именно хранится используемый вами макрос. В отличие от, например, Excel, который позволяет хранить макросы в файле personal.xlb или в определенных электронных таблицах, все макросы Microsoft Outlook хранятся в одном глобальном файле, который называется VBAProject.otm. Файл можно найти по адресу:
C:\users\<your_user_name>\AppData\Roaming\Microsoft\Outlook.
Кнопка быстрого доступа для макросов Outlook
Наш следующий шаг — вставить небольшую кнопку быстрого доступа, которая позволит нам легко запустить макрос. Для простоты вставим эту кнопку на панель быстрого доступа.
Откройте Microsoft Outlook, если ещё не открыли.
Щёлкните правой кнопкой мыши на Ленте Outlook и выберите пункт Customize the Quick Access Toolbar.
Примечание: Аналогичную процедуру можно использовать для размещения значка на самой ленте, а не на панели быстрого доступа.
Нажмите Choose commands from комбо-бокс и выберите Macros.
Выберите макрос, который вы создали и нажмите Add.
Нажмите Modify для выбора иконки для вашей кнопки Панели Быстрого Доступа.
По завершении, нажмите OK.
Как разрешить выполнение макросов в Outlook?
Этот шаг не является обязательным, и его следует выполнять только в том случае, если вы получаете сообщение об ошибке при запуске вновь созданного макроса.
Сперва, нужно разрешить Outlook запускать наш макрос VBA. По умолчанию Microsoft Office отключает макросы и не разрешает их выполнение. Поэтому нам нужно будет определить надлежащую безопасность макросов, чтобы разрешить запуск вашего настраиваемого макроса Outlook.
В Outlook 2016/2019, щелкните Developer на Ленте и выберите Macro security.
Выберите Настройки безопасности макросов.
- Для Outlook 2016 выберите вариант «Notifications for only digitally signed macros, all other disabled или Notifications for all macros«.
- Для Outlook 2019 выберите вариант «Disable All Macros with Notification«. Это задействует появление предупреждающего сообщения, требующего одобрения пользователя перед запуском макроса.
После настройки безопасности макросов, нажмите OK.
Ваши текущие настройки безопасности могут препятствовать запуску макросов в Outlook. Вот руководство о том, как действовать, если макросы отключены в вашем проекте Макросов Outlook.
Как использовать макрос Outlook?
И последнее, но не менее важное: теперь пора запустить только что созданный макрос.
Перейдите на панель быстрого доступа (верхняя левая часть экрана — немного выше основного меню).
Нажмите значок, который вы назначили для своего макроса.
Вуаля, вы только что завершили и запустили свой (первый) макрос Outlook VBA!
Как упростить рутинные задачи, используя VBA / Хабр
Привет, Хабр! Я Сергей Чебарев, аналитик в команде визуализации данных «Северсталь-инфокома», и сегодня я расскажу, как можно, используя VBA и приложения Office, автоматизировать рутину в работе. VBA (Visual Basic for Applications) – это упрощенная версия Visual Basic, встроенная в множество продуктов Microsoft Office, и соответственно, эти продукты можно подружить между собой.
Самое очевидное применение VBA (который ещё часто и не вполне корректно называют макросами) – это автоматизация типовых задач с множеством повторяющихся шагов, делать которые руками долго, скучно и чревато ошибкам от усталости. Рассмотрим одну из таких задач.
Создание событий в Outlook через Excel
Итак, у меня есть задача: необходимо создавать события в календаре и отправлять пользователям приглашения с данными для входа на терминальный сервер.
Звучит на первый взгляд не очень сложно, но:
Приглашения нужно отправлять из общего почтового ящика
Тело приглашения должно содержать корпоративный стиль оформления
Есть лимит по количеству пользователей на терминальном сервере в сутки, поэтому необходимо следить за количеством событий
Соответственно, мало просто открыть Outlook с календарем, перед созданием события нужно проверить, не превысит ли лимит на текущий день данное приглашение, задать диапазон времени, перенести тело письма из файла или из предыдущего приглашения. Все это требует выполнения большого числа действий и отнимает заметное количество времени.
Как же упростить эту рутину, используя Excel, Outlook и VBA? Рассказываю
Распишем действия по шагам.
1. Создаем книгу Excel и получаем данные из календаря
Используя инструмент «Создать запрос», выбираем источник «Из Microsoft Exchange» и вводим почтовый ящик, где ведутся события. После подключения открывается PowerQuery с данными из почты (сообщения, календарь и прочее). Нам нужны только данные календаря.
В таблице теперь видны все созданные события, но нам необходимо видеть ещё и дни, где пока нет событий. Для этого мы создаем новый запрос и вызываем функцию List.Dates:
Она нам создаст список дней, начиная с сегодняшнего, на 21 день вперед:
Теперь объединим 2 данных запроса в один. Для этого переводим лист с датами в таблицу с помощью инструмента “В таблицу” на вкладке “преобразование” и переходим на запрос, где мы собрали все приглашения из почты, после чего на вкладке “Главная” выбираем инструмент “Добавить запросы”. Выбираем созданную ранее таблицу с датами и объединяем:
*Важно, при объединении столбцы в таблицах должны иметь одинаковые названия.
Создаем дополнительные столбцы «Subject», «Location» и «Статус брони», которые будут нести информацию о теме события, локации события и о том, из какого запроса пришли данные: если из календаря, то «Бронь», если из вызванной функции — «Свободно». Делаем сведение по столбцу «Статус брони» для определения количества свободных окон по дням и присваиваем статус для возможности бронирования. Закрываем PowerQuery и получаем следующую таблицу:
Отлично! Создав столбец “Окон свободно”, мы освободились от подсчета событий и видим возможность бронирования.
2. Создание событий в Outlook
Теперь нам необходимо написать скрипт на VBA для создания событий в Outlook. Для этого переходим во вкладку “Разработчик” в Excel и открываем VisualBasic:
В открывшемся окне выбираем рабочий лист, где находится итоговая таблица по событиям:
Запускать код мы будем, используя двойной клик на строки столбца «Доступность бронирования», и при условии, что статус бронирования «Забронировать»:
Для работы с Outlook мы будем использовать функцию GetObject(«Outlook. Application»). GetObject — это функция для приложений VBA. Она используется для прикрепления к запущенным объектам. Более подробно с синтаксисом функции можно ознакомиться в документации Microsoft.
Для соблюдения корпоративного стиля код ищет предыдущее приглашение и копирует из него тело письма. Далее создается новое приглашение, и в него заносится вся необходимая информация.
subjectStr = "Шаблон приглашения" - ‘Поиск заданного приглашения(шаблона) For Each oAppointmentItem In objNavFolder.Folder.Items If InStr(oAppointmentItem.Subject, subjectStr) > 0 Then Set N = oAppointmentItem N.Copy ‘Делаем копию шаблона N.Display N.Location = Cells(b, 2) ‘место события из ячейки таблицы N.Subject = Cells(b, 1) ‘название события из ячейки таблицы N.Start = Cells(b, 3) + 0.33333 ‘время начала события N.End = Cells(b, 3) + 0.999 ‘время окончания события Exit For End If Next oAppointmentItem
Протестируем. Открываем файл, ищем строку с датой, которая нас интересует, и двойным кликом на статус бронирования запускаем скрипт:
Приглашение на выбранный нами день с необходимой темой и телом письма успешно создано, осталось только указать получателя
3. Обновление данных
Чтобы при открытии книги происходило обновление данных, сохраним скрипт в саму книгу:
Кроме того, отключим фоновое обновление в свойствах подключения таблицы:
Подведем итоги
Итак, мы упростили создание однотипных событий в календаре, а также точно уверены, что не превысим лимит событий на день. Это позволило нам избавиться от рутинной работы и уменьшило вероятность человеческой ошибки.
Конечно, в идеале можно было доработать нашу платформу обучения и полностью автоматизировать процесс бронирования. Но скрипты VBA тем и хороши, что могут заметно упростить жизнь без разработки и изменения существующих систем. Они пригодятся там, где скрипт пишется за несколько часов, а на полноценную автоматизацию и доработку существующих решений нужны недели или месяцы.
Интересно, что подобные решения могут быть не всегда очевидны. Например, в этой задаче изначально вообще не использовался Excel. Кажется, что раз необходимо создавать события, то нужно использовать только Outlook. Но Excel помогает собирать и обрабатывать данные из разных источников.
Если вам интересны похожие способы избавления от рутины, пишите комментарии, я расскажу о других кейсах в следующих статьях.
Использование Visual Basic для приложений в Outlook
Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 3 минуты на чтение
Visual Basic для приложений (VBA) упрощает управление Microsoft Outlook в самом Microsoft Outlook. Используя VBA в Outlook, вы можете создавать макросы, которые автоматически выполняют сложные или повторяющиеся задачи. Вы также можете разработать программный код, реагирующий на события Outlook, что позволит автоматизировать общие задачи (например, расположение окон при запуске Outlook).
Visual Basic для приложений позволяет использовать почти все преимущества объектной модели Outlook, включая широкий спектр событий на уровне приложения, без необходимости запуска внешнего приложения (например, другого приложения Microsoft Office или приложения, разработанного с использованием Microsoft Visual Basic). В отличие от сценариев форм, разработанных с использованием Microsoft Visual Basic Scripting Edition (VBScript), код Outlook Visual Basic для приложений всегда доступен в приложении; элемент не обязательно должен быть открыт для запуска кода.
Весь код Outlook Visual Basic для приложений содержится в проекте. Проект связан с конкретным пользователем, поэтому все пользователи, запускающие Outlook на компьютере, могут настроить Outlook в соответствии со своими потребностями. Проект может содержать модули кода и модули пользовательских форм (обратите внимание, что модули пользовательских форм — это не то же самое, что формы Outlook).
Редактор Visual Basic используется для создания и удаления модулей, разработки модулей пользовательских форм и редактирования кода в модулях. Этот редактор предоставляет мощный набор инструментов, включая встроенный обозреватель объектов и отладчик, упрощающий разработку кода и устранение неполадок. Вы даже можете использовать редактор Visual Basic в Outlook для разработки и тестирования кода, который затем можно скопировать в отдельное приложение Visual Basic или приложение Visual Basic для приложений в другом приложении Microsoft Office.
Outlook одновременно поддерживает только один проект Visual Basic for Applications, Project1. Вы не можете одновременно добавить и запустить другой проект в редакторе Visual Basic. Project1 хранится на вашем жестком диске как VbaProject.OTM; у каждого пользователя на одном компьютере может быть сохранена копия VbaProject. OTM. На компьютере под управлением Windows XP файл VbaProject.OTM находится в папке <диск>:\Documents and Settings<пользователь>\Application Data\Microsoft\Outlook.
Поскольку одновременно можно запускать только один проект Visual Basic для приложений, перед запуском другого проекта следует выйти из Outlook, переименовать текущий файл VbaProject.OTM с другим именем файла, назвать проект, который требуется запустить, как VbaProject .OTM и перезапустите Outlook, чтобы запустить его. При необходимости вы также можете вручную интегрировать проекты в один VbaProject.OTM, чтобы избежать именования и переименования файлов.
Код Outlook Visual Basic для приложений был разработан как личная среда разработки макросов, а не для развертывания или распространения. Чтобы переместить проект с одного компьютера на другой, например, перенести проект с рабочего компьютера на домашний, вы можете экспортировать формы и модули кода с рабочего компьютера и импортировать их на домашний компьютер. Вы также можете скопировать и вставить исходный код проекта в Project1 на домашнем компьютере с помощью редактора Visual Basic.
Если вы разрабатываете решение, которое собираетесь распространять среди нескольких человек, вам следует преобразовать код Visual Basic for Applications в надстройку Outlook COM. Однако для разработки надстройки COM обычно требуется гораздо больше знаний в области программирования, чем для создания короткого макроса, поэтому, если ваш проект Visual Basic для приложений относительно прост и не слишком много людей, которым нужно его использовать, вы можете отправить им код с инструкциями по его настройке.
Поддержка и отзывы
У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.
VBA Outlook | Как отправлять электронные письма из Outlook с помощью кода VBA?
Мы видели VBA в Excel и то, как мы автоматизируем наши задачи в Excel, создавая макросы. В Microsoft Outlook у нас также есть ссылка на VBA, и мы можем управлять Outlook с помощью VBA. Это упрощает автоматизацию повторяющихся задач в Outlook. Как и в Excel, нам нужно включить функцию разработчика, чтобы использовать VBA в Outlook.
Прелесть VBA в том, что мы можем ссылаться на другие объекты Microsoft, такие как PowerPoint, Word и Outlook. Мы умеем создавать красивые презентации. Мы можем работать с документами Microsoft Word. Наконец, мы также можем отправлять электронные письма. Да, вы не ослышались. Мы можем отправлять электронные письма из Excel. Звучит неловко, но в то же время вызывает улыбку на наших лицах. В этой статье показано, как работать с объектами Microsoft Outlook из Excel с помощью кодирования VBA Кодирование VBA Код VBA представляет собой набор инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. читать далее. Читать дальше.
Содержание
- VBA Outlook
- Как мы можем ссылаться на Outlook из Excel?
- Напишите код для отправки электронных писем из VBA Outlook из Excel
- Рекомендуемые статьи
Вы можете свободно использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак указать авторство?Статья Ссылка на гиперссылку
Например:
Источник: VBA Outlook (wallstreetmojo.com)
Как мы можем ссылаться на Outlook из Excel?
Помните, что Outlook — это объект. Поэтому нам нужно установить ссылку на это в библиотеке ссылок на объекты. Чтобы установить объект Outlook в качестве ссылки, выполните следующие действия.
Шаг 1: Перейдите в редактор Visual Basic.
Шаг 2: Выберите Инструменты > Справочник.
Шаг 3: В приведенных ниже ссылках библиотека объектов прокрутите вниз и выберите «БИБЛИОТЕКА ОБЪЕКТОВ MICROSOFT OUTLOOK 14.0».
Проверьте «БИБЛИОТЕКУ ОБЪЕКТОВ MICROSOFT OUTLOOK 14.0» , чтобы сделать его доступным для Excel VBA.
Теперь мы можем получить доступ к объекту Outlook VBA из Excel.
Напишите код для отправки электронных писем из VBA Outlook из Excel
Мы можем отправлять электронные письма из Excel через приложение Outlook. Для этого нам нужно написать коды VBA. Затем выполните следующие шаги, чтобы отправить электронные письма из Outlook.
Вы можете скачать этот шаблон VBA Outlook в Excel здесь — Шаблон VBA Outlook в Excel
Шаг 1: Создайте подпроцедуру.
Код:
Опция ExplicitOption Опция ExplicitVBA явно требует от пользователя объявления всех переменных перед их использованием; любая неопределенная переменная вызовет ошибку при выполнении кода. Мы можем включить его для всех кодов из опций, требующих объявления переменных.Подробнее Sub Send_Exails() End Sub
Шаг 2: Определите переменную как VBA Outlook.Application .
Код:
Опция Явная Sub Send_Exails() Dim OutlookApp как Outlook.Application Конец суб
Шаг 3: Приведенная выше переменная ссылается на приложение Outlook VBA. В Outlook нам нужно отправлять электронные письма, поэтому определите другую переменную как Outlook. MailItem.
Код:
Опция Явная Sub Send_Exails() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem End Sub
Шаг 4: Теперь обе переменные являются объектными переменными. Нам нужно их установить. Сначала задайте для переменной OutlookApp значение New Outlook.Application 9.0073 .
Код:
Sub Send_Exails() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application End Sub
Шаг 5: Теперь установите вторую переменную «OutlookMail», как показано ниже.
Установить OutlookMail=OutlookApp.CreateItem(olMailItem)
Код:
Sub Send_Exails() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp. CreateItem(olMailItem) Конец суб
Шаг 6: Теперь, используя с оператором доступа VBA Outlook Mail.
Код:
Sub Send_Exails() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp.CreateItem(olMailItem) С OutlookMail Конец с End Sub
Теперь мы можем получить доступ ко всем элементам, доступным с элементами электронной почты, такими как «Основная часть электронного письма», «Кому», «Копия», «СК», «Тема» и многим другим.
Шаг 7: Внутри инструкции мы можем увидеть список IntelliSense, поставив точку .
Шаг 8: Сначала выберите формат основного текста olFormatHtml .
Код:
С OutlookMail .BodyFormat = олФорматHTML Завершите на
Шаг 9: Теперь отобразите электронное письмо.
Код:
С OutlookMail .BodyFormat = олФорматHTML .Отображать Конец с
Шаг 10: Нам нужно написать письмо в теле письма. Для этого выберите HtmlBody.
Код:
С OutlookMail .BodyFormat = олФорматHTML .Отображать .HTMLBody = "Напишите здесь свой адрес электронной почты" End With
Ниже приведен пример текста электронного письма.
Шаг 11: Нам нужно указать идентификатор электронной почты получателя после написания электронного письма. Для этого доступа «К . »
Шаг 12: Затем укажите, кому вы хотите CC отправить электронное письмо.
Шаг 13: Теперь укажите идентификаторы электронной почты BCC ,
Шаг 14: Далее нам нужно указать тему отправляемого нами электронного письма.
Шаг 15: Теперь добавьте вложения. Если вы хотите отправить текущую книгу в виде вложения, используйте вложение как Эта книга.
Шаг 16: Наконец, отправьте электронное письмо с помощью Способ отправки .
Теперь этот код отправит электронное письмо из вашей почты Outlook VBA. Используйте приведенный ниже код VBA для отправки электронных писемКод VBA для отправки электронных писемМы можем использовать VBA для автоматизации нашей функции рассылки в Excel для отправки электронных писем нескольким пользователям одновременно. Чтобы использовать функции Outlook, мы должны сначала включить сценарии Outlook в VBA, а затем использовать метод приложения. Подробнее читайте в Outlook.
Чтобы использовать приведенный ниже код, необходимо задать для ссылки на объект значение «БИБЛИОТЕКА ОБЪЕКТОВ MICROSOFT OUTLOOK 14.0 9».0073» под библиотекой объектов Excel VBA.
Библиотека вызывается ранним связыванием путем установки ссылки на объект. Нам нужно установить ссылку на библиотеку объектов, потому что без установки библиотеки объектов как «MICROSOFT OUTLOOK 14. 0 OBJECT LIBRARY . « Мы не можем получить доступ к списку свойств и методов IntelliSense VBA. Это затрудняет написание кода, потому что вам нужно быть уверенным в том, что вы пишете с точки зрения техники и правописания.
Sub Send_Emails() 'Этот код является ранним связыванием, т.е. в Инструменты > Ссылка >У вас есть галочка "MICROSOFT OUTLOOK 14.0 OBJECT LIBRARY" Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp.CreateItem(olMailItem) С OutlookMail .BodyFormat = олФорматHTML .Отображать .HTMLBody = "Уважаемый ABC" & "
" & "
" & "Пожалуйста, найдите прикрепленный файл" & .HTMLBody 'последний .HTMLBody включает подпись из Outlook. ''
включает разрывы строкРазрывы строкРазрыв строки в Excel означает вставку новой строки в любое значение ячейки. Чтобы вставить разрыв строки, нажмите ALT + Enter. Когда мы вставляем разрыв строки, высота ячейки также увеличивается, так как она представляет данные. Читать далее ч/б две строки .To = "[электронная почта защищена]" .CC = "[электронная почта защищена]" .BCC = "[электронная почта защищена];[электронная почта защищена]" .Subject = "Тестовая почта" .Attachments = Эта книга .Отправлять Конец с Конец суб
Рекомендуемые статьи
Эта статья представляет собой руководство по VBA Outlook. Здесь мы узнаем, как отправлять электронные письма из Outlook, используя коды VBA, примеры и загружаемый шаблон. Ниже приведены некоторые полезные статьи Excel, связанные с VBA. Как использовать функцию Excel VBA Outlook для отправки электронной почты?
Мы ежедневно работаем с огромным количеством файлов Excel и ежедневно отправляем их многим пользователям. Мы ежедневно пишем одно и то же сообщение по электронной почте и отправляем этот файл Excel. Это дает нам возможность автоматизации этой задачи. Вы правильно поняли. Эта задача написания электронного письма и отправки файла может быть автоматизирована с помощью VBA. Причина в том, что VBA может использовать ссылку с различными объектами Microsoft, такими как Outlook, Word, PowerPoint, Paint и т. д.
Таким образом, мы можем отправить электронное письмо с помощью VBA. Теперь я уверен, что вы все будете рады узнать, как мы можем отправить электронное письмо с помощью VBA.
В этой статье мы узнаем, как использовать Outlook как объект Microsoft из Excel с использованием кодирования VBA и как мы можем отправить электронное письмо, включая вложение, с помощью VBA.
Как использовать функцию Excel VBA Outlook?
Чтобы использовать функцию Outlook VBA, нам нужно сделать две вещи.
Вы можете скачать этот шаблон VBA Outlook Excel здесь — Шаблон VBA Outlook Excel
- Ссылка на объект Microsoft Outlook из библиотеки объектов в VBA.
- Напишите код VBA для отправки электронной почты в модуле VBA.
#1 — Ссылка на Outlook из Excel
Как вы знаете, Outlook — это объект, и нам нужно предоставить ссылку на объект Outlook. Итак, в VBA есть справочная библиотека объектов, которую нам нужно использовать для справки.
Выполните следующие действия, чтобы использовать библиотеку ссылок на объекты.
Шаг 1: На вкладке «Разработчик» щелкните Visual Basic , чтобы открыть редактор VB.
Шаг 2: Перейти к Инструменты , а затем выберите Ссылки , как показано на снимке экрана ниже.
Шаг 3: Прокрутите вниз библиотеку эталонных объектов и выберите «Библиотека объектов Microsoft Outlook 16.0» , чтобы сделать ее доступной для Excel VBA.
В зависимости от офиса Microsoft версия Outlook может отличаться. В нашем случае это 16.0. Вы можете использовать « Библиотека объектов Microsoft Outlook 14.0 » , если эта версия отображается на вашем компьютере.
Установите флажок Microsoft Outlook, как показано на снимке экрана выше. Теперь мы можем использовать объект Microsoft Outlook в Excel VBA.
Этот процесс установки ссылки на «БИБЛИОТЕКУ ОБЪЕКТОВ MICROSOFT OUTLOOK 16.0» известен как раннее связывание. Без установки библиотеки объектов как «MICROSOFT OUTLOOK 16.0 OBJECT LIBRARY» мы не можем использовать свойства и методы IntelliSense VBA, что затрудняет написание кода.
# 2 — Напишите код для отправки электронных писем из VBA Outlook из Excel
Выполните следующие шаги, чтобы написать код VBA для отправки электронной почты из Outlook из Excel.
Шаг 1: Создайте подпроцедуру, назвав макрос. Мы назовем макрос «send_email», как показано на скриншоте ниже.
Код:
Опция Явная Sub Send_email() End Sub
Шаг 2: Определите переменную как Outlook. Приложение , как показано на снимке экрана ниже. Это ссылка на приложение Outlook VBA.
Код:
Опция Явная Sub Send_email() Dim OutlookApp как Outlook. Application End Sub
Шаг 3: Нам нужно отправить электронное письмо в Outlook, поэтому определите другую переменную как « Outlook.Mailitem », как показано на снимке экрана ниже.
Код:
Опция Явная Sub Send_email() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Конец суб
Шаг 4: На предыдущих шагах мы определили переменные, теперь нам нужно их установить.
Теперь установите первую переменную «Приложение Outlook» как «Новый Outlook.Application», как показано на снимке экрана ниже.
Код:
Опция Явная Sub Send_email() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Конечный переходник
Шаг 5: Теперь установите вторую переменную «Почта Outlook» с кодом ниже.
Код:
Опция Явная Sub Send_email() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp.CreateItem(olMailItem) End Sub
Шаг 6: Теперь мы можем использовать VBA Outlook, используя « с », как показано на скриншоте ниже.
Код:
Опция Явная Sub Send_email() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp.CreateItem(olMailItem) С OutlookMail End Sub
Теперь у нас есть полный доступ к элементам электронной почты, таким как «Кому», «Копия», «Скрытая копия», «Тема», «Тело письма» и многим другим элементам.
Шаг 7: В операторе With мы можем увидеть список, поставив точку, известную как «Список Intellisense».
Шаг 8: Сначала выберите формат тела olFormatHtml , как показано на снимке экрана ниже.
Код:
С OutlookMail .BodyFormat = олФорматHTML End Sub
Шаг 9: Выберите « .Display », чтобы отобразить почту, как показано на снимке экрана ниже.
Код:
С OutlookMail .BodyFormat = олФорматHTML .Отображать End Sub
Шаг 10: Выберите « .HTMLbody », чтобы написать электронное письмо, как показано на снимке экрана ниже.
Код:
С OutlookMail .BodyFormat = олФорматHTML .Отображать .HTMLBody = "напишите здесь свой адрес электронной почты" End Sub
Нам нужно помнить несколько вещей при написании электронного письма в коде VBA.
«
» используется для включения разрыва строки между двумя строками. Чтобы добавить подпись в электронное письмо, вам нужно ввести «& .HTMLbody»
. См. ниже пример того, как написать письмо в VBA.
Код:
С OutlookMail .BodyFormat = олФорматHTML .Отображать .HTMLBody = "Уважаемый ABC" & "
" & "Пожалуйста, найдите прикрепленный файл" & .HTMLBody End Sub
Шаг 11: Теперь нам нужно добавить получателя электронной почты. Для этого нужно использовать «.To».
Код:
.To = "[email protected]"
Шаг 12: Если вы хотите добавить кого-то в «CC» и «BCC», вы можете использовать «.CC» и «.BCC», как показано на скриншоте ниже.
Код:
.CC = "[email protected]" .BCC = "[email protected]"
Шаг 13: Чтобы добавить тему для отправляемого нами электронного письма, мы можем использовать « .Subject », как показано на снимке экрана ниже.
Код:
.Subject = "TEST MAIL"
Шаг 14: Мы можем добавить нашу текущую книгу в качестве вложения в электронное письмо с помощью свойства «.Attachment». Для этого сначала объявите переменную Source как строку.
Код:
Dim source_file As String
Затем используйте следующий код, чтобы прикрепить файл к электронному письму.
Код:
исходный_файл = ThisWorkbook.FullName .Attachments.Добавить исходный_файл
Здесь ThisWorkbook используется для текущей книги и файла . FullName используется для получения полного имени рабочего листа.
Шаг 15: Теперь последний код, чтобы окончательно отправить электронное письмо, для которого мы можем использовать « .send ». Но не забудьте закрыть процедуру With и Sub с помощью «End with» и «End Sub», как показано на снимке экрана ниже.
Итак, код наконец-то готов для отправки электронного письма. Теперь нам нужно просто запустить макрос.
Шаг 16: Запустите код, нажав F5 или кнопку «Выполнить», и посмотрите результат.
Окончательный полный код
Итак, ниже приведен окончательный код того, как отправить электронное письмо с помощью VBA Outlook.
Код:
Опция Явная Sub Send_email() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Dim исходный_файл как строка Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp.CreateItem(olMailItem) С OutlookMail .BodyFormat = олФорматHTML .Отображать .HTMLBody = "Уважаемый ABC" & "
" & "Пожалуйста, найдите прикрепленный файл" & .HTMLBody .Кому = "[email protected]" .CC = "[email protected]" .BCC = "[email protected]" .Subject = "ТЕСТ ПОЧТА" source_file = ThisWorkbook.FullName . Attachments.Добавить исходный_файл .Отправлять Конец с Конец суб
Пример функции Outlook VBA
Предположим, что есть руководитель группы, и он хочет ежедневно отправлять электронное письмо для отслеживания действий каждого члена. Электронное письмо будет таким.
» Привет, команда,
Прошу вас поделиться своими действиями по каждому из ваших последующих вопросов до 11:00 сегодня.
С уважением,
Неизвестно
»
Выполните шаги, упомянутые выше, для ссылки на объект Microsoft и написания кода VBA, или вы можете просто изменить код соответствующим образом.
Таким образом, весь код остается прежним, нам нужно изменить несколько вещей в коде, например, идентификатор электронной почты получателя, тему, текст электронного письма, и в электронном письме не будет вложений.
Ниже приведен измененный код, который мы используем для написания этого письма.
Код:
Sub Send_teamemail() Dim OutlookApp как Outlook.Application Dim OutlookMail как Outlook.MailItem Установите OutlookApp = Новый Outlook.Application Установите OutlookMail = OutlookApp.CreateItem(olMailItem) С OutlookMail .BodyFormat = олФорматHTML .Отображать .HTMLBody = "Привет, команда" & "
" & "
" & "Просим вас поделиться ваши действия по каждому из ваших последующих элементов до 20:00 сегодня." & .HTMLBody .To = "[email protected];[email protected];[email protected]" .Subject = "Отслеживание команды" .Отправлять Конец с Конец суб
После запуска макроса вы увидите, что почта была отправлена автоматически из вашего Outlook.
Что следует помнить
- Во-первых, убедитесь, что на вашем компьютере установлен Microsoft Outlook и вы вошли в свою учетную запись.
- Убедитесь, что флажок Microsoft Outlook в библиотеке объектов всегда установлен. Код не запустится и выдаст ошибку, если он не проверен.