Как сделать сообщение в экселе

Обновлено: 05.07.2024

Имеем таблицу в Microsoft Excel, в которой хранится информация о ключевых клиентах нашей компании (адреса эл.почты, имена, названия компаний и т.д.), которых мы хотим поздравить с очередным праздником.

В терминах Microsoft Office такая процедура называется Слиянием (Mail Merge) . Поехали.

Подготовка списка клиентов в Excel

Таблица со списком клиентов для рассылки должна удовлетворять нескольким простым условиям:

  • Шапка таблицы должна быть простой - одна строка с уникальными названиями столбцов (без повторений и пустых ячеек).
  • В таблице не должно быть объединенных ячеек.
  • В таблице не должно быть пустых строк или столбцов (отдельные пустые ячейки допускаются).

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

Поскольку Excel и Word не смогу сами определить пол клиента по имени, то имеет смысл сделать отдельный столбец с обращением (господин, госпожа и т.п.) или с родовым окончанием (-ый или -ая) для обращения "Уважаемый(ая). " Как вариант, возможно полуавтоматическое определение пола в зависимости от окончания отчества ("а" или "ч"), реализованное функцией ПРАВСИМВ (RIGHT) .

В новых версиях Microsoft Excel 2007/2010 для таких таблиц очень удобно использовать инструмент Форматировать как таблицу (Format as Table) с вкладки Главная (Home) . Подробнее про такие "умные таблицы" можно почитать тут.

Потом запускаем пошаговый Мастер Слияния на вкладке Рассылки (Mailings) кнопкой Начать слияние ( Start Mail Merge ) – Пошаговый мастер слияния (Step-by-Step Merge Wizard) :

В Word 2003 и старше эта команда была доступна в меню Сервис - Письма и рассылки - Мастер слияния (Tools - Letters and Mailings - Mail Merge) .

Этап 1. Выбор типа документа.

Этап 2. Выбор документа

Этап 3. Выбор получателей

На этом шаге мы подключаем список клиентов в Excel к документу Word. Выбираем Использование списка и жмем на Обзор (Browse) , после чего в диалоговом окне открытия файла указываем где лежит наш файл со списком клиентов.

После выбора источника данных, Word позволяет провести фильтрацию, сортировку и ручной отбор записей при помощи окна Получатели слияния:

Этап 4. Создание письма

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

В итоге, после вставки всех полей слияния у нас должно получиться нечто похожее (вставленные поля выделены красным):

Если в исходной таблице не было специального столбца для окончания "ый"/"ая" к слову "уважаем" (как в нашем примере), но был обычный столбец "Пол" с классическими "муж" и "жен", то можно воспользоваться кнопкой Правила (Rules) на вкладке Рассылки (Mailings) :

mail-merge-rules.jpg

Эта кнопка открывает список правил (функций и полей), доступных для вставки в документ при создании рассылки. Для подстановки нужного окончания к слову "уважаемый/ая" выберем третий пункт IF. THEN. ELSE. В открывшемся затем окне зададим правило подстановки правильного окончания в зависимости от пола:

mail-merge-if.jpg

Этап 5. Просмотр писем

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

Этап 6. Завершение слияния

На завершающем этапе возможны несколько вариантов:

Нажатие ссылки Печать (Print) приведет к немедленной отправке всех результатов слияния на принтер без вывода на экран.

Если необходимо сохранить созданные в результате слияния документы для дальнейшего использования или требуется внести ручную правку в некоторые из документов, то лучше использовать ссылку Изменить часть писем (Edit individual letters) , которая выведет результаты слияния в отдельный файл:

Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!

1. Держать Alt + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. В Microsoft Visual Basic для приложений окно, дважды щелкните Эта рабочая тетрадь из Проект-VBAProject панели, затем скопируйте и вставьте приведенный ниже код VBA в Модули окно, см. снимок экрана:

Внимание: Если Проект-VBAProject панель скрыта, щелкните Вид > Обозреватель проекта для его отображения.

3. Затем закройте окно кода и сохраните эту книгу как Excel Macro-Enabled Workbook формат, пожалуйста, нажмите Файл > Сохранить какИ в Сохранить как окно, выберите Excel Macro-Enabled Workbook из Сохранить как список, см. снимок экрана:

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

Ноты:

Автоматически открывать определенные книги при следующем запуске Excel

После установки Kutools for Excel, выполните следующие действия:

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

2. Затем нажмите Предприятие > Workbook > Автоматически открывать эту книгу в следующий раз, см. снимок экрана:

3. В Автоматически открывать эту книгу в следующий раз диалоговое окно, щелкните Выбрать все чтобы проверить все книги, которые вы хотите автоматически открывать в следующий раз при запуске файла Excel, затем нажмите Ok для выхода из диалога см. снимок экрана:

4. И теперь, когда вы запускаете файл Excel, все выбранные вами книги открываются одновременно.

Внимание: Чтобы отменить эту операцию, вам просто нужно отменить выбор всех книг или удалить или очистить книги в Автоматически открывать эту книгу в следующий раз диалоговое окно.

Прежде чем начать читать статью прошу принять к сведению объявление: используйте СВОИ АДРЕСА ЭЛ.ПОЧТЫ при тестировании кодов . Не надо отсылать письма на указанные в статье e-mail адреса- это все приходит мне на почту. Помимо этого Вы сами не сможете понять работает или нет, т.к. письма придут мне, а не Вам.
Спасибо за понимание
P.S. А если написанное выше Вы все же проигнорировали и отправили письмо на мои адреса электронной почты - это означает, что Вы соглашаетесь с тем, что вся информация внутри письма, включая вложения, может быть использована мной без ограничений в личных целях.


Отправка через меню Excel
Отправку без кода осуществить достаточно просто:

Далее выбирается способ отправки:

Sub SendMailStandart() ActiveWorkbook.SendMail "mail1@excel-vba.ru", "Тема письма" End Sub

Также можно указать несколько получателей:

Sub SendMailStandart_MassRecipients() ActiveWorkbook.SendMail Array("mail1@excel-vba.ru", "mail2@excel-vba.ru"), "Тема письма" End Sub

Этот код отправляет одно письмо и одно вложение за раз. Но если несколько раз вызвать метод .Attachments.Add, то можно добавить еще файлы:

.Attachments.Add "C:\Temp\Книга1.xlsx" .Attachments.Add "C:\Temp\Книга2.xlsx" .Attachments.Add "C:\Documents\Report.rar"

objOutlookApp.Session.Logon "user","1234",False, True

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

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

Этот код отправляет одно письмо и вставляет одну картинку. За это отвечает строка

Если картинку надо вложить с заранее указанными размерами, то строка будет выглядеть так:

"" 'height - высота 'width - ширина

Если надо добавить несколько картинок, то метод .Attachments.Add sPicture надо будет вызвать столько раз, сколько картинок(для каждого свой путь к картинке).

Важно помнить: пути для картинок должны содержать полный путь до файла, включая его имя и расширение: C:\Документы\Изображения\Excel_vba_ru.jpg . При указании только имени Excel_vba_ru.jpg или пути без расширения ( C:\Документы\Изображения\Excel_vba_ru ) ошибки не будет, но картинка не будет вставлена, а вместо неё скорее всего будет текст "Ошибка загрузки картинки!" или пустой квадрат вместо реальной картинки.

  • Outlook 2007 : Меню-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
  • Outlook 2010 и выше : Файл-Параметры-Центр управления безопасностью-Программный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)

ВАЖНО: Если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями, возможность изменения данных настроек безопасности программного доступа будет недоступна.



Но так же при отправке файлов и писем часто необходимо не привязываться к конкретной почтовой программе. Ведь далеко не все ставят Outlook. Многие используют иные почтовые программы, например TheBat.

Данный код отправляет письмо, используя объект CDO (Collaboration Data Objects - присутствует во всех версиях Windows) и от имени Вашей учетной записи(либо Яндекс, либо Мэйл, либо Рамблер либо др.).

Это основные моменты. Поля Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) думаю не нуждаются в расшифровке.

Чтобы использовать данный код вы можете либо просто скопировать его прямо со страницы, либо скачать файл. В файле программа немного упрощена к использованию - в ячейки листа вам необходимо будет внести поля: Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) и выбрать SMTPserver. SMTPserver выбирается из выпадающего списка. Сам список является динамическим и расположен на листе "Settinngs". Там же расположены поля Учетной записи и Пароль, которые автоматически подставляются в необходимые поля на листе "Отправка". Т.к. список динамический Вы можете просто добавлять к уже имеющимся новые сервисы и потом просто выбирать их из списка. Так же в файле есть еще одна возможность - выбрать файл. Для этого надо просто нажать на кнопку и выбрать файл.

With oCDOMsg Set .Configuration = oCDOCnf .From = sFrom .BodyPart.Charset = "windows-1251" .To = sTo .Subject = sSubject Set objbp = oCDOMsg.AddRelatedBodyPart("C:\Документы\Изображения\11.jpg", "11.jpg", 1) objbp.Fields.Item("urn:schemas:mailheader:Content-ID") objbp.Fields.Update If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> "" Then .AddAttachment sAttachment End If End If 'для вложения картинки письмо лучше формировать в формате HTML .HTMLBody "11.jpg"">
" & sBody .Send End With

Самый главный момент:
AddRelatedBodyPart

    C:\Документы\Изображения\11.jpg - указывается полный путь к файлу картинки на компьютере, включая расширение файла.
    11.jpg - указывается имя картинки с расширением. Это имя будет использовано внутри письма и именно его необходимо будет указать дальше в " urn:schemas:mailheader:Content-ID ". И указывать обязательно в треугольных скобках: " "
    внутри же самого письма в том месте, где должна отображаться картинки надо записать:

в приведенном выше коде картинка вставляется в самом начале письма и после неё так же добавляется перенос на новую строку при помощи тэга



Войти через uID

Войти через uID

Как появляется число, если его кто-то вводит, то можно выводить окошко информации при проверке ввода.

Вариант на VBA рассматривается ?

Как появляется число, если его кто-то вводит, то можно выводить окошко информации при проверке ввода.

Вариант на VBA рассматривается ? x_hunter_x

Как появляется число, если его кто-то вводит, то можно выводить окошко информации при проверке ввода.

Вариант на VBA рассматривается ? Автор - x_hunter_x
Дата добавления - 13.12.2019 в 18:56

x_hunter_x,
Большое спасибо.
Отвечаю: 1. Число образуется в результате разности Дат, ячейка в формате: Общий .
2.

x_hunter_x,
Большое спасибо.
Отвечаю: 1. Число образуется в результате разности Дат, ячейка в формате: Общий .
2.

Читайте также: