Svinkovod.ru

Бытовая техника
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Макрос в excel для отправки почты

Автоматизация задач с помощью средства записи макросов — Excel

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

При записи макроса все действия в записи макроса записываются Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, скажем, Microsoft Access. Visual Basic Приложение (VBA) — это подмножество мощного Visual Basic программирования, которое входит в большинство Office приложений. Хотя VBA позволяет автоматизировать процессы как в приложениях, так и между Office, необязательно знать код VBA или программирование на компьютере, если оно делает то, что вам нужно.

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

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

Вкладка "Разработчик" на ленте

Запись макроса

Перед записью макросов полезно знать следующее:

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

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

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

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

На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

Нажмите ALT+T+M+R.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.

Читайте так же:
Можно ли дрочить перед тренировкой

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса . При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (Personal.xlsб), если она еще не существует, и сохраняет макрос в этой книге.

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

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

На вкладке Разработчик в группе Код нажмите кнопку Остановить запись .

Нажмите ALT+T+M+R.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

Диалоговое окно "Макрос"

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Сведения о параметрах безопасности макросов и их значении.

Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги.

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Вы можете назначать макросы формам и элементам ActiveX на листе.

Узнайте, как включать и отключать макросы в файлах Office.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Узнайте, как найти справку по элементам Visual Basic.

Работа с записанным кодом в редакторе Visual Basic (VBE)

С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.

Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.

Запись макроса

Перед записью макросов полезно знать следующее:

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

Читайте так же:
Можно ли восстановить инстаграм после удаления аккаунта

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

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

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

Перейдите в Excel > параметры. > ленты & панель инструментов.

В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

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

На вкладке Разработчик нажмите кнопку Запись макроса.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса. При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически при Excel, и любой код, сохраненный в личной книге макроса, будет указан в диалоговом окну Макрос, которое объясняется в следующем разделе.

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести содержательное описание со всеми сведениями, которые могут быть полезны вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

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

На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Узнайте, как включать и отключать макросы в Excel для Mac.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Читайте так же:
Можно ли включать усилитель без колонок

Назначение макроса объекту, фигуре или графическому элементу

Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Узнайте, как найти справку по элементам Visual Basic.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Отправить электронную почту через excel используя макрос

Каждый в процессе своей трудовой деятельности рано или поздно сталкивается с необходимостью отправлять однотипные сообщения определенному кругу лиц. Например, в процессе моей трудовой деятельности передо мной стояла задача отправлять, так сказать, письма-напоминалки единственной целью которых было напомнить определенному кругу лиц, что настало время передавать мне показания по приборам учета. И звучало оно примерно так: «Добрый день Наталья Ивановна! Прошу предоставить показания газа за апрель 2020 года». Само сообщение так сказать не трудно было составить, трудно было вспомнить, что именно в этот день нужно было отправить сообщение (эту проблему мы уже решили в статье «как организовать работу чтобы все успевать»), а также на какой адрес электронной почты отправлять. Я тратил уйму времени, чтобы найти необходимую информацию. Это повторялось из месяца в месяц и в итоге мне в голову пришла мысль: «А почему бы мне не сделать так, чтобы по нажатию кнопки «отправить сообщение» у меня автоматически создавалось новое сообщение с уже набранным обращением в Outlook и указывались контакты, которым данное сообщение адресовано».

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

Теперь давайте подробно разберем, как отправить электронную почту через excel. Для решения данной задачи я использовал встроенный в Microsoft Office язык программирования Visual Basic for Applicatin, сокращенно vba. Для тех, кто понятия не имеет о том, что это такое, а также всех, кто испытывает страх перед словом «язык программирования» — прошу ознакомиться со статьей «Самоучитель по макросам в Excel. Азы VBA», поверьте, в нем нет ничего сложного.

В первую очередь отправка почты через vba excel должна быть универсальной. Ведь не хочется писать кучу строк кода каждый раз, когда понадобиться отправить сообщение другому человеку с другим содержанием. Для этого создадим функцию CreateNewMail с тремя текстовыми параметрами типа String, а именно email (адрес электронной почты), tema (тема сообщения) и put_file (путь к файлу, который необходимо прикрепить к сообщению). Получится картина следующего вида:

Далее в тело самой функции поместим код создания нового объекта Outlook, присвоив его переменной Mail.

Читайте так же:
Можно ли в электропечи разогревать еду

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

В итоге получилась функция следующего вида:

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

В результате получим сообщение следующего вида. И единственное что остается сделать – это нажать кнопку «Отправить».

отправка почты макросом excelСообщение, созданное макросом excel

И, как всегда, макрос отправки сообщения по Outlook из Excel можно скачать тут или же составить самостоятельно по вышеприведенному примеру. Также, немного доработав код vba, можно реализовать макрос автоматической отправки сообщений.

Excel Store

Макрос для отправки группы писем из папки «Черновики». Выделяете нужные письма в Outlook (сохраненные и ранее не отправленные), запускаете макрос и письма автоматически отправляются без необходимости ручной отправки каждого письма.

Подробное описание

В Outlook есть удобная возможность работы с черновиками писем. То есть вы создаете письмо, но вместо отправки только сохраняете его. По умолчанию письма сохраняются в папку «Черновики». Данная функция очень удобная, но есть одно ограничение. Если черновых писем для отправки у вас накопится довольно-таки много, то чтобы их все отправить, придется «прокликать» каждое письмо. Хорошо, если таких писем 5-10. Но что делать, когда их более 100?

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

  1. из приложенного выше txt-файла скопировать код и вставить его в Outlook
  2. вывести кнопку запуска макроса на панель быстрого доступа

Теперь более подробно по каждому из 2-х пунктов.

1. Вставить код макроса из данной статьи в Outlook

Здесь всё просто. В Outlook нажимаем комбинацию клавиш ALT+F11 и попадаем в редактор VBA.
Далее в блоке слева находим модуль This OutlookSession и делаем по нему двойной клик левой кнопкой мыши:

Выбор модуля в Outlook

В открывшееся окно модуля вставляем код нашего макроса из файла выше (просто копируя текст из файла в модуль).
Как результат, у вас должно получится примерно следующее:

Выбор модуля в Outlook - После вставки кода

На этом с кодом VBA всё.
Чтобы изменения вступили в силу, закройте Outlook, и на вопрос о сохранении проекта обязательно нажмите «Да»:

Выбор модуля в Outlook - После вставки кода

2. Вывести кнопку запуска макроса на панель быстрого доступа

Нам осталось лишь добавить кнопку для удобного запуска нашего макроса.
Для наглядности записал небольшое видео (увеличьте для комфортного просмотра).

Настройки завершены. Outlook готов к работе.

Для отправки необходимых писем, просто выделите письма, которые желаете отправить (используя клавиши CTRL+SHIFT и/или CTRL) и нажмите кнопку запуска макроса на панели быстрого доступа.

Из нюансов по работе с макросом:

  1. Если писем выделено много (500 и более), то макросу требуется некоторое время на их обработку. Поэтому если вам кажется, что макрос «завис», значит, процесс обработки еще не завершен. Для примера, обработка 800 писем занимает около 3-х минут.
  2. Статус отправленных писем можно наблюдать в папке «Исходящие» и/или «Отправленные».
  3. Отправка писем с помощью данного макроса возможна только из папки «Черновики». При необходимости, это ограничение легко снять, подправив код макроса.

Если после всех настроек макрос у вас так и не заработает, то, скорее всего, вам необходимо установить персональный сертификат в Outlook. Будут вопросы, как это сделать, пишите — расскажу.

Читайте так же:
Можно ли в dragon age inquisition

Exceltip

Блог о программе Microsoft Excel: приемы, хитрости, секреты, трюки

Три способа отправить письмо из Excel с помощю VBA

письмо excel

Excel позволяет создавать диаграммы высокого качества, работать с огромным количеством данных, обрабатывать картинки, блок-схемы и многое другое. И даже если вам и этого не достаточно, можно использовать Excel для автоматической отправки писем с помощью встроенного VBA редактора.

Данная статья описывает три способа отправки писем с помощью VBA в Excel. Вы можете скачать файл с примером отправки email с помощью VBA в Excel.

Отправить письмо в Excel с помощью VBA

Один из самых простых способов для автоматизации отправки почты с Excel заключается в вызове функции Create («ObjectOutlook.Application»). Данная функция возвращающает ссылку на ActiveX объект (в данном случает приложение Outlook), которое затем используется для создания и отправки электронной почты.

Чтобы проверить данный способ в работе, скопируйте и вставьте код ниже в VB редактор.

В качестве напоминания: Когда вы пытаетесь отправить письмо вышеуказанным способом, система безопасности будет выдавать каждый раз предупреждающее окно, в котором будет говориться о том, что Программа пытается отправить сообщение от вашего имени… и возможности обойти этот шаг нет.

предупреждение об отправке письма

К счастью, существует еще два способа, с помощью которых данный вопрос может быть решен: первый – через использование CDO, второй – имитирующий использование событий нажатий клавиш клавиатуры.

Отправить письмо в Excel с помощью CDO

Что такое CDO? CDO является библиотекой объектов, которая предоставляет интерфейс Messaging Application Programming Interface (MAPI). CDO позволяет манипулировать обменом данных, и отправлять и получать сообщения.

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

В нашем примере мы используем функцию CreateObject («CDO.Message»). Важно отметить, что необходимо правильно установить конфигурацию SMTP сервера, чтобы не допустить появления ошибок Run-time error 2147220973(80040213) или sendUsing configuration value is invalid. Пример ниже настроен на отправку сообщений через почту Google (Gmail). Для других почтовых серверов, вам потребуется ввести свои значения SMTP-сервера и SMTP-порта.

Обратите внимание, чтобы воспользоваться данным методом вам необходимо подключить библиотеку CDO в редакторе макросов Tool –> References.

Отправить письмо с помощью CDO

Отправить письмо в Excel с помощью Send Keys

Другой способ отправки email с помощью Excel – использование команды ShellExecute, которая выполняет любую программу в VBA. Команда ShellExecute используется для загрузки документа с соответствующей программой. По сути, вы создаете объект String (текстовые данные) и передаете его в качестве параметра для функции ShellExecute. Остальная часть операций выполняется в окнах. Автоматически определяется, какая программа связана с данным типом документа и используется для загрузки документа. Вы можете использовать функцию ShellExecute, чтобы открыть Internet Explorer, Word, Paint и множество других приложений. В коде ниже используется задержка в три секунды, чтобы убедиться, что отправляемое письмо корректно и для возможности предотвратить отправку, если вы вдруг нашли какие-нибудь недочеты.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector