Кодирование
С кодирование все сложнее. Опыта в VBAу меня мало.
Благо в интернете статей много. В итоге получилось вот такой код.
Обратите внимание на две
переменные:
base_path – это путь, куда будут сохраняться файлы. Все эти
папки должны быть созданы.
file_ext – содержит перечисление всех расширений файлов,
которые будут сохраняться. При необходимости добавьте требуемое расширение.
Подключение и
настройка.
Нужно выполнить три шага:
1. Разрешить использование макросов
2. Добавить код макроса
3. Настроить правило
Разрешение использования макроса.
1. В Outlook
2010 выберите меню «Файл» и в нём пункт «Параметры»
2. В открывшемся окне выберите в левой части пункт «Центр
управления безопасностью» и в правой части нажмите кнопку «Параметры центра
управления безопасностью»
3. В открывшемся окне выберите в левой части пункт «Параметры
макросов» и выберите пункт «Уведомление для всех макросов». При этом варианте Outlookбудет
спрашивать разрешение на запуск всех макросов. Если выбрать «Включить все
макросы» — то спрашивать не будет и будет запускать автоматически – а это очень
плохо.
4. Нажимайте во всех окнах кнопку «Ок».
Добавляем код макроса
1. В Outlook
2010 выберите меню «Файл» и в нём пункт «Параметры».
2. В открывшемся окне выберите в левой части пункт «Настройка
ленты» и в правой части поставьте галочку слева от слова «Разработчик» и
нажмите кнопку «Ок».
4. В результате у вас появиться закладка «Разработчик».
5. Откройте закладку «Разработчик» и нажмите самую первую кнопку
«VisualBasic».
6. В результате откроется окно редактора «MicrosoftVisualBasicforApplications». У вас это
окно может выглядеть иначе
Но это не важно.
7. Щёлкните правой кнопкой на проекте и в открывшемся
контекстом меню выберите пункт «Insert».
В открывшемся подменю выберите пункт «Module».
8. В результате откроется окно ввода кода.
9 Скопируйте код выше и вставьте его в окно ввода.
10. Закройте окно «Microsoft Visual Basic for Applications» нажав красный крестик. Система
сама всё сохранит автоматически.
Настроить правило
1. В outlookна закладке «Главная» выберите пункт «Правила» и в
открывшемся меню выберите пункт «Управление правилами и оповещениями». Если такой кнопки не можете найти – разверните окно Outlookна весь
экран.
2. В открывшемся окне нажмите кнопку «Новое».
3. В открывшемся окне выберите пункт «Применение правила к
полученным мною сообщениям» и нажмите кнопку «Далее».
4. В открывшемся окне ничего не отмечайте и сразу нажимайте
кнопку «Далее». Система запросит у Вас уверены ли что правило будет для всех
писем. Отвечайте «Да». При необходимости настройте необходимые правила.
5. В открывшемся окне поставьте галочку у пункта «Запустить
скрипт»
Затем в нижней части окна нажмите на слово «скрипт» и в
открывшемся диалоговом окне выберите «SaveAttachments». Нажмите кнопку «Далее».
6. В открывшемся окне
нажмите кнопку «Далее»
7. В открывшемся окне укажите имя правила – «Сохранение все
вложений». Если Вам необходимо, что бы правило сразу отработало – поставьте галочку
у первого пункта в шаге №2. Нажмите кнопку «Готово». Outlookсообщит
о том, что это правило будет работать только на этом компьютере — жмите «Ок».
8. В результате файлы
будут сохраняться на диск компьютера каждый раз, когда будет приходить письмо с
вложением.
Возможные проблемы
Если у Ваша проблема тут не указана, пожалуйста напишите в
комментариях о ней, что бы я мог помочь Вам с ней.
Не сохраняются вложения.
1. Проверьте наличие созданного каталога. По умолчанию это «C:\Temp\OutlookAttach».
Или создайте эти две папки или измените этот путь в скрипте в переменной «base_path»
Сохраняются не все вложения
1. Проверьте в скрипте в переменной «file_ext» что указано
расширение требуемого файла. Добавьте требуемое расширение в строку в
переменную.
VBA макрос для рассылки писем из Excel через Outlook
- Допустим, у нас есть Excel файл, содержащий следующие столбцы:
- Email пользователя | ФИО | Время последней смены пароля | Статус учетной записи
В рамках моей задачи нужно каждому пользователю из списка отправить письмо вида:
Тема: Статус учетной записи в домене winitpro.ruТело письма: Уважаемый %FullUsername%Ваша учетная запись в домене winitpro.ru — %status%
Время последней смены пароля: %pwdchange%
В открывшемся редакторе VBA вставьте следующий код (я снабдил его всеми необходимыми ми). Для автоматизации отправки писем я воспользуюсь функцией CreateObject(«Outlook.Application»), позволяющей создать и использовать в скрипте объект приложения Outlook.
Важно. На компьютере, рассылающем письма должен быть установлен и настроен почтовый профиль Outlook
Именно с этого ящика (и адреса) будет выполнятся рассылка.
BodyFormat = 1′ 1 — текстовый формат письма, 2 — HTML форматolMailItm.Body = strBodyolMailItm.
Send’следующую строку можно использовать для отладки текста письма, закомментировав предыдущую’MsgBox strBodySet olMailItm = NothingNext iCounterSet olApp = Nothingdbg:’отображение ошибок, если естьIf Err.Description «» Then MsgBox Err.Description
End Sub
Данный Excel файл нужно сохранить с расширением xlsm (формат книги Excel с поддержкой макросов). Для запуска рассылки выберите созданную процедуру (макрос) и нажмите кнопку выполнить.
Предыдущая статья Следующая статья
Рассылка индивидуальных писем с вложениями
Больше года назад я рассказывала вам, как можно создать рассылку из индивидуальных писем, используя Word 2010. И недавно ко мне обратился друг за помощью: ему потребовалось добавить к такой рассылке вложения.
В Word 2010 такой возможности мы не нашли, но мысль засела в голове. Лучше поздно, чем никогда – я расскажу вам как это сделать.
Для начала вам потребуется запустить программу Publisher. Эта программа входит в версию Office Professional Plus 2010, и, очень вероятно, уже установлена на вашем компьютере. Просто вы ни разу её не запускали. =)
Итак, запускаем Publisher, выбираем шаблон электронного письма, на основе которого я планирую делать рассылку.
Дальше вам понадобится вкладка Рассылки (Mailings). Переключаемся на Слияние с электронной почтой.
Выбираю получателей. Удобнее всего, когда электронные адреса и имена получателей, как и в случае с Word, находятся в отдельном Excel файле (формат csv).
Выбрать получателей – использовать существующий список. Выбираем наш файл.
Подготавливаем письмо, добавляем все изменяемые поля. Теперь нам понадобится кнопка Найти и объединить:
Выбираем Отправить электронные сообщения
Появляется окно:
Вынем выбираем Параметры.
Открываются дополнительные опции, среди которых – копия, скрытая копия, важность сообщения – и возможность добавить вложение.
Выбираю вложение и нажимаю Отправить.
Проверила с личного почтового ящика – приложение совершенно нормально открывается.
Массовая рассылка (слияние) с помощью Excel и Word
Привет! Сегодня решил осветить один из тех инструментов, а именно массовую рассылку (слияние) документов. Этот инструмент относится к тем, что:
- легки в использовании
- малоизвестны
- приносят охрененную пользу
и еще один нюанс — это единственный из всех инструментов, который использует связь с Word. Даже более того, этот инструмент больше относится к Word, чем к Excel.
Итак, начинаем.
Применение инструмента
Представим ситуацию. Вы начальник отдела кадров, в котором утвержденный проект трудового договора. Каждый сотрудник, включая гендира, подписывает ежегодно один и тот же документ, который каждый раз отличается только в деталях, индивидуально присущих каждому человеку — ФИО, должность, зарплата, домашний адрес и т.д.
Или ситуация — когда надо отправить одно и то же письмо куче адресатов — новогоднее поздравление, приглашение на благотворительный концерт, уведомление — маркетологи например часто вынуждены клепать подобные письма с конвертами своим клиентам.
В любом случае вы работаете с каждым адресатом. Это отнимает много времени и является рутинной процедурой, которую легко можно сократить.
Что необходимо
В первую очередь нам нужны:
- Документ-шаблон в Word’е
- Список адресатов с их характеристиками (адресами, полом, обращением…)
У меня для примера простенькое письмецо:
Серым отмечены блоки, индивидуальные для каждого адресата. Как видите, нужно подготовить обращение (Уважаемый/Уважаемая), нужные поля в родительном падеже (Иванову). Соответственно, на каждый такой блок я готовлю табличку в Excel:
Делаем слияние
Слияние — вот как называется этот инструмент. Для этого открываем наш шаблон в Word и нажимаем на вкладке «Рассылки» — «Начать слияние» — «Пошаговый мастер слияния».
Далее появится справа панель, где поэтапно надо выбирать нужный вариант.
- Выбор типа документа. Я выбрал «Письма»
- Открытие документа. Я уже открыл, поэтому «Текущий документ».
- Выбор получателей. У меня уже готовый список, поэтому «Использование списка» и Обзор. Там выбираю свой файл.
- Создание письма. Мне много блоков надо ввести, поэтому поочередно выбираю нужное место в письме и через «Другие элементы» вставляю нужный мне элемент.
- Просмотр писем. Здесь можно прокрутить ваши записи, т.е. посмотреть все документы, нажимая на соответствующие стрелочки.
- Завершение слияния. Тут есть два варианта — «Печать» — можете распечатать готовые документы, при этом выбрав только тех, кто нужен. И другой вариант «Изменить часть писем» — здесь каждый документ формируется друг за другом. Это нужно для того, чтобы внести какие-то редкие изменения, которые просто нецелесообразно втыкать в таблицу. При этом также можно выбрать какие письма вам выгрузятся в Word, а какие не нужны.
- Сохраните документ. Потом при открытии вас будут спрашивать
- Отвечаете «Да» и можете просматривать шаблон с текущими адресами прямо на панели, слияние делать больше не придется.
Очевидный плюс этого инструмента — никакой рутины. Подготовка документа будет сводиться лишь к открытию, выбору адресатов и распечатке (отправке).
Там вы заодно познакомитесь еще с 9ю инструментами, которые приносят огромную пользу в работе всем пользователям Excel.
Как создать почтовую рассылку по Excell.xls файлу / MS Office Word и Outlook 2007
Необходимо сделать рассылку по шаблону, имея список людей и их электронку в файле Excel. Иными словами надо разослать письма или приглашения по почте электронной, в которых Вы должны отчетливо указать фамилию, имя, отчество человека, обращение к нему, заполнить поле с логином и паролем.
Пример накидываем как обычный WORD файл.
Список всех желающих получить такое письмо находится в таблице Excel, где четко установлены столбцы с ФИО человека, Адресом, обращение и т.д.
Пример списка получателей письма.
- Программа Word может автоматизировать этот процесс,чтобы вам не пришлось вводить вручную каждое письмо, заполняя необходимые поля.
- Для этого откройте ваше письмо, выполните команду: Начать слияние и дальше Сообщение электронной почты.Дальше выбираем таблицу Excel в которой хранится база Выбрать получателей, Использовать существующий список.
Открываем через обзор наш файл (потом файл если переместить прийдется менять здесь путь). И выбираем на нем лист, на котором таблица. Обычно это №1.
После этого начинаем указывать места куда нужно будет вставлять данные из таблицы.
Выделяем участок мышью и в меню сверху тыкаем Вставить поле слияния. И указываем имя столбца в файле Excel, откуда он будет брать значение.
После этого можно скорректировать Получателей (можно использовать автофильтр либо снять галочки с «неполучателей»). Если получатели все, то ничего не трогаем.
Можно просматривать письма, которые будут формироваться по ходу дела.
Когда все что нужно сделали нажимаем Найти и объединить. Вот тут мы выбираем отправить электронные сообщения. Чтобы отправить нужно, чтобы аултук был почтарем по умолчанию. Иначе письма не отправятся.
К слову сказать, таким же способом можно делать бумажные приглашения, письма или формировать файлы с приглашением. На любой вкус. Нужно было информатику учить
Как вставить картинку в письмо?
При рассылке электронных писем с помощью надстройки, предусмотрена возможность добавления к письму изображений. При этом изображения можно прикрепить к письму, как обычные вложения, а можно вставить в тело письма.
1. Для отправки картинок обычными вложенными файлами достаточно просто установить флажок в поле «Добавить файлы во вложение» и при помощи кнопки обзора выбрать необходимые файлы, не зависимо от того используется html-файл или нет;
2. Чтобы вставить картинку в тело письма, необходимо использовать html-файл. Картинку предварительно нужно выложить в сеть интернет, чтобы она была доступна получателям писем, поместив ее на сервер любого файлобменника, например на www.imageup.ru (либо другой сервис, предоставляющий прямые ссылки). В свою очередь в html-файле достаточно в нужном месте вставить ссылку на эту картинку, а также указать размеры картинки, при этом если ссылка указана правильно, получатель письма должен увидеть изображение в теле письма. Ссылка должна иметь вид:
<img src=’http://macros-vba.ru/files/Logo.png’ height=39 width=165> если изображение размещено на сайте, или
<img src=’http://www.imageup.ru/img67/2780968/123123.jpg’ height=39 width=165> если изображение размещено на сервере файлобменника (адрес картинки сгенерирован файлобменником).
Создать html-файл можно при помощи текстового редактора Word, для этого при сохранении файла необходимо выбрать тип файла «Веб-страница (*.htm; *.html)». После сохранения файла, его необходимо открыть при помощи блокнота или текстового редактора NotePad++, вставить в нужное место документа ссылку на картинку, после чего сохранить внесенные изменения.
В этой инструкции описаны настройки рассылки писем, общие для всех способов отправки (Outlook, TheBAT!, сервис рассылки).
К общим настройкам рассылки относится:
- настройка темы письма и текста письма
- настройка прикрепляемых файлов (вложений к письму)
- настройка получателей письма (основной получатель, копия, скрытая копия)
Для начала, открываем в Excel таблицу с исходными данными для рассылки.
В таблице может быть сколько угодно столбцов, но обязательно должен присутствовать столбец с адресами электронной почты
(если у вас нет такой таблицы, можете протестировать программу на примере этого файла Excel, скриншот которого приведён ниже)
Теперь открываем настройки программы, нажав кнопку Настройки на панели инструментов, и начинаем настраивать рассылку.
1. На вкладке Основные настройки ставим галочку «Выполнять рассылку писем»
При этом, на форме настроек появится новая вкладка с названием «Письма», где можно будет задать все параметры создаваемых писем:
Как видно на скриншоте, вы можете использовать поля из исходной таблицы как в качестве адреса получателя, так и в теме и тексте письма.
В поле «Получатель» необходимо сформировать корректный адрес электронной почты, на который будет отправлено письмо.
Адрес получателя можно ввести в полном и кратком формате:
-
{email адресата} — обычный адрес электронной почты (краткий формат)
После подстановки значений из таблицы Excel, адрес будет иметь вид vasya@mail.ru -
{Имя адресата} <{email адресата}> — полный формат адреса электронной почты (Имя Получателя <email>)
После подстановки значений из таблицы Excel, адрес будет иметь вид Василий Пупкин <vasya@mail.ru>
Текст и тема письма могут быть произвольными.
В них тоже можно использовать коды полей (заголовки столбцов в фигурных скобках), а также любые другие поддерживаемые программой поля (например, код {%longdate%} для вставки текущей даты)
Вложения (прикрепление файлов к письму)
Если необходимо прикреплять файлы к создаваемым письмам, пролистываем настройки еще немного вниз, и видим галочки для включения 2 режимов добавления вложений:
Первая опция — «Прикреплять к письму сформированные файлы» — позволяет нам присоединять документы, заполненные (созданные) нашей программой.
К примеру, если в папке «Шаблоны» у нас находится несколько файлов — образцов документов, а прикрепить к письму необходимо только один файл, — то можно воспользоваться текстовым полем для указания маски файла.
(если в папке «Шаблоны» находятся файлы с именами Анкета.doc, Купон участника.doc и Расчёт скидки.xls, то при маске *купон* к письмам будут прикреплены только файлы, созданные на базе шаблона Купон участника.doc)
Вторая опция — «Прикреплять к письму все файлы из заданной папки» — даёт нам возможность добавлять во вложение к письму неизменяемые («статические») файлы.
Количество «статических» файлов неограничено — сколько их будет в папке, столько и будет прикреплено к каждому письму.
Внимание: Если вы случайно укажете в качестве этой папки каталог с огромным количеством файлов, то почтовая программа может зависнуть (при попытке прикрепить сотни мегабайтов во вложение к письму)
PS: В поиске файлов, просматривается только верхний уровень заданной папки, — файлы из подпапок не прикрепляются к письмам)
Когда мы всё настроили (и не забыли нажать кнопку «Сохранить изменения»), можно запускать формирование документов.
Результат создания писем — на скриншоте:
Применение инструмента
Представим ситуацию. Вы начальник отдела кадров, в котором утвержденный проект трудового договора. Каждый сотрудник, включая гендира, подписывает ежегодно один и тот же документ, который каждый раз отличается только в деталях, индивидуально присущих каждому человеку — ФИО, должность, зарплата, домашний адрес и т.д.
Или ситуация — когда надо отправить одно и то же письмо куче адресатов — новогоднее поздравление, приглашение на благотворительный концерт, уведомление — маркетологи например часто вынуждены клепать подобные письма с конвертами своим клиентам.
Как обычно делается? Либо вы вносите каждый раз перед распечаткой в установленный шаблон нужные изменения либо создаете на каждого сотрудника (адресата) отдельный документ, в котором только корректируете дату подписания.
В любом случае вы работаете с каждым адресатом. Это отнимает много времени и является рутинной процедурой, которую легко можно сократить.
Как отправить электронное письмо с несколькими вложениями в Excel?
В этой статье рассказывается об отправке электронного письма через Outlook с несколькими вложениями, прикрепленными в Excel.
Отправить электронное письмо с несколькими вложениями, прикрепленными в Excel, с кодом VBA
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Чтобы отправить электронное письмо с несколькими вложениями в Excel, сделайте следующее.
1. Вставьте командную кнопку, нажав разработчик > Вставить > Командная кнопка (элемент управления ActiveX). Смотрите скриншот:
2. После вставки командной кнопки щелкните ее правой кнопкой мыши и выберите Просмотреть код из контекстного меню.
3. В дебюте Microsoft Visual Basic для приложений окно, пожалуйста, нажмите Сервис > дело как показано ниже.
4. в Ссылки — VBAProject диалоговом окне найдите и проверьте Библиотека объектов Microsoft Outlook вариант, а затем щелкните OK кнопку.
5. Затем замените исходный код в окне кода приведенным ниже кодом VBA.
Код VBA: отправить электронное письмо с несколькими вложениями в Excel
Private Sub CommandButton1_Click() Dim xStrFile As String Dim xFilePath As String Dim xFileDlg As FileDialog Dim xFileDlgItem As Variant Dim xOutApp As Outlook.Application Dim xMailOut As Outlook.MailItem Application.ScreenUpdating = False Set xOutApp = CreateObject("Outlook.Application") Set xMailOut = xOutApp.CreateItem(olMailItem) Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker) If xFileDlg.Show = -1 Then With xMailOut .BodyFormat = olFormatRichText .To = "happy.xuebi@163.com" .Subject = "test" .HTMLBody = "test" For Each xFileDlgItem In xFileDlg.SelectedItems .Attachments.Add xFileDlgItem Next xFileDlgItem .Display End With End If Set xMailOut = Nothing Set xOutApp = Nothing Application.ScreenUpdating = True End Sub
Внимание: укажите получателя, тему и текст вашего электронного письма, изменив вариант в .To = happy.xuebi@163.com, .Subject = «тест» и .HTMLBody = «тест» строк в коде. 6
нажмите другой + Q ключи вместе, чтобы выйти из Microsoft Visual Basic для приложений окно
6. нажмите другой + Q ключи вместе, чтобы выйти из Microsoft Visual Basic для приложений окно.
7. Нажмите разработчик > Режим проектирования , чтобы выключить режим дизайна. Смотрите скриншот:
8. Нажмите кнопку Command, чтобы запустить код. В всплывающем Приложения в окне выберите файлы, которые нужно вложить в электронное письмо, а затем щелкните значок OK кнопка. Смотрите скриншот:
9. Затем создается электронное письмо с указанными полями и вложениями. Пожалуйста, нажмите на Отправить кнопку, чтобы отправить его. Смотрите скриншот:
Внимание: Код VBA работает только при использовании Outlook в качестве почтовой программы. Легко отправлять электронную почту через Outlook на основе полей созданного списка рассылки в Excel:
Легко отправлять электронную почту через Outlook на основе полей созданного списка рассылки в Excel:
Освободи Себя Отправить письма полезности Kutools for Excel помогает пользователям отправлять электронную почту через Outlook на основе созданного списка рассылки в Excel.Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная трасса)
Как отправить письмом отформатированный текст?
Механизм, используемый для автоматической рассылки писем, позволяет отправлять только неотформатированный текст, то есть, если в ячейках Excel для рассылки приготовлен текст, имеющий переносы строк, измененные цвета и размеры шрифтов, отступы и так далее, то при автоматическом формировании писем все эти настройки формата текста игнорируются. Тем не менее, осуществить отправку отформатированного текста все-таки можно, для этого в тексте писем достаточно использовать html-тэги, например, для переноса строки — тэг br, заключенный в угловые скобки , а для того чтобы сделать текст жирным — тэги b и /b, также в угловых скобках каждый. Разобраться достаточно просто.
Другие материалы по теме:
Привет! Сегодня решил осветить один из тех инструментов, а именно массовую рассылку (слияние) документов. Этот инструмент относится к тем, что:
- легки в использовании
- малоизвестны
- приносят охрененную пользу
и еще один нюанс — это единственный из всех инструментов, который использует связь с Word. Даже более того, этот инструмент больше относится к Word, чем к Excel.
Итак, начинаем.