Использование сценариев VBA в Excel не требует никаких знаний в области программирования. VBA помогает вам выполнять множество сложных задач, таких как создание отчета в электронной таблице, содержащей всю информацию о ПК, отправка электронной почты непосредственно из электронной таблицы ...
Для отправки электронной почты из Microsoft Excel нужно всего несколько простых скриптов. Не бойтесь добавить эту функцию в свою электронную таблицу, если вы действительно хотите максимально использовать возможности офисного программного обеспечения Excel.
Электронная почта из Excel
Есть много причин, почему вы хотите отправить письмо прямо в Microsoft Excel. Например, ваши сотрудники обновляют документы и электронные таблицы еженедельно, и вы хотите получать уведомления по электронной почте, когда это действие завершено, а иногда вы хотите отправить по электронной почте всем контактам в одной книге. в ...
Вы, должно быть, подумали об использовании сложного сценария электронной почты Excel, но на самом деле это очень просто. Эта статья поможет вам воспользоваться функцией, которая уже давно доступна в Excel VBA, и называется « Объекты совместной работы (CDO)» .

CDO - это компонент обмена сообщениями, используемый в Windows с самых ранних версий. Раньше назывались CDONTS. После рождения Windows 2000 & XP его заменил «CDO для Windows 2000». Этот компонент включен в установку VBA в Microsoft Word или Excel и доступен для использования в любое время.
Использование этого компонента для электронной почты в продуктах Windows с VBA чрезвычайно просто. Например, эта статья использует CDO в Excel для отправки электронных писем, содержащих результаты в одной ячейке.
Шаг 1. Создание макроса VBA
Сначала перейдите на вкладку « Разработчик Excel » > нажмите « Вставить на панели управления» , затем выберите командную кнопку.

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

При нажатии кнопки « Создать» открывается редактор VBA.
Добавьте ссылку на библиотеку CDO, перейдя в Инструменты> Ссылки в редакторе.

Прокрутите список вниз, пока не увидите Microsoft CDO для библиотеки Windows 2000 . Установите флажок и нажмите ОК .

Когда вы нажимаете OK , запишите имя функции, в которую вставлен скрипт, потому что она понадобится вам позже.
Шаг 2: Установите поля CDO «От» и «До»
Для этого сначала необходимо создать объекты, связанные с электронной почтой, и настроить все необходимые поля доставки электронной почты.
Помните, что многие поля могут или не могут, но с и требуется.
Dim CDO_Mail как объект
Dim CDO_Config как объект
Dim SMTP_Config как вариант
Dim strSubject в виде строки
Dim strFrom в виде строки
Dim strTo в виде строки
Dim strCc в виде строки
Dim strBcc в виде строки
Dim strBody в виде строки
strSubject = "Результаты из таблицы Excel"
strFrom = "[email protected]"
strTo = "[email protected]"
strCc = ""
strBcc = ""
strBody = "Общие результаты за этот квартал:" & Str (Sheet1) .Cells (2, 1))
Интересно то, что вы можете создать любую желаемую строку, чтобы настроить сообщение электронной почты целиком и назначить ей переменную strBody.
Собираем воедино содержимое сообщения электронной почты, используя строку &, чтобы вставить данные из любой электронной таблицы Microsoft Excel прямо в электронное письмо (как показано выше).
Шаг 3. Настройте CDO для использования внешнего SMTP
Следующий фрагмент кода - это настройка CDO для использования любого внешнего SMTP-сервера для отправки электронной почты.
Этот пример не устанавливает SSL через Gmail, CDO может заменить SSL, но это выходит за рамки этой статьи. Если вам нужно использовать SSL, вам может помочь расширенный код в Github.
Установить CDO_Mail = CreateObject ("CDO.Message") при
ошибке Перейти к Error_Handling
Установить CDO_Config = CreateObject ("CDO.Configuration")
CDO_Config.Load -1
Установите SMTP_Config = CDO_Config.Fields
С SMTP_Config
.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp. gmail.com "
.Item (" http://schemas.microsoft.com/cdo/configuration/smtpauthenticate ") = 1
.Item (" http://schemas.microsoft.com/cdo/configuration/sendusername ") =" [email protected] "
.Item (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") =" пароль "
.Item (" http://schemas.microsoft.com/cdo/configuration/smtpserverport ") = 25
.Item (" http://schemas.microsoft.com/cdo/configuration/smtpusessl ") = True.
Обновление
заканчивается на
С
установленным CDO_Mail. Конфигурация =
Конец CDO_Config
Шаг 4: Завершите настройку CDO
Теперь вы настроили свой SMTP-сервер для отправки электронной почты. Все, что вам нужно сделать, это заполнить соответствующие поля для объекта CDO_Mail и выполнить команду Send .
Вот как это сделать:
CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
Если Err.Description <> "" Тогда MsgBox Err.Description
Ни одно из всплывающих окон или предупреждений безопасности не появляется, как вы обычно видите при использовании объекта электронной почты Outlook.
CDO просто помещает компоненты электронной почты рядом друг с другом и использует сведения о соединении с сервером для обеспечения возможности отправки информации. Это самый простой способ объединения писем в сценарии Microsoft Word или Excel VBA.
Чтобы подключить командную кнопку к этому сценарию, откройте редактор кода и нажмите « Лист1», чтобы увидеть код VBA этого листа.
Введите имя функции, куда вы вставили скрипт выше.

Это информация, которую вы получаете в папке «Входящие».

Примечание . Если вы получили сообщение об ошибке Транспорт не смог подключиться к серверу , убедитесь, что вы ввели правильное имя пользователя, пароль, SMTP-сервер и номер порта в строке кода, указанной в параметре With SMTP_Config .
Улучшить и автоматизировать весь процесс
Отправка писем из Excel одной кнопкой - это действительно безопасно и удобно. Если вы хотите использовать эту функцию часто, вы можете автоматизировать ее.
Для этого вам нужно изменить макрос. Перейдите в редактор Visual Basic, скопируйте и вставьте весь собранный код. Затем выберите ThisWorkbook из иерархии проекта .
В двух раскрывающихся полях вверху окна кода выберите « Рабочая книга» и нажмите « Открыть» в меню « Методы» . Вставьте скрипт электронной почты выше в Private Sub Workbook_Open () . Это действие будет запускать макрос всякий раз, когда вы открываете файл Excel.

Далее откройте Планировщик заданий . Вы будете использовать этот инструмент, чтобы попросить Windows автоматически открывать электронные таблицы через определенные промежутки времени. В это время ваш макрос будет активирован и отправлен по электронной почте.

Выберите Create Basic Task ... из меню Action и следуйте инструкциям, пока не дойдете до экрана Action.
Выберите « Запустить программу» и нажмите « Далее» .

Используйте кнопку « Обзор» , чтобы найти расположение Microsoft Excel на компьютере, или скопируйте и вставьте путь в поле « Программа / сценарий» .
Затем введите путь к документу Microsoft Excel в поле « Добавить аргументы» .
Полные инструкции и график вы будете сделаны.
Вы должны протестировать эту функцию, запланировав действие на следующие несколько минут, а затем пересмотрев задачу, после того как вы увидите, что она работает эффективно.
Примечание . Может потребоваться настроить параметры центра управления безопасностью, чтобы макрос работал следующим образом:
Откройте электронную таблицу и перейдите в « Файл»> «Параметры»> «Центр управления безопасностью» .
Здесь нажмите Настройки центра управления безопасностью . На следующем экране выберите Никогда не показывать информацию о заблокированном контенте .
Microsoft Excel является чрезвычайно мощным инструментом, но изучение его использования иногда может быть сложным для многих. Если вы хотите освоить это программное обеспечение, вы должны знать, как использовать VBA. Это не легко.
Однако, обладая небольшим опытом работы с VBA, вы можете автоматизировать основные задачи в Microsoft Excel и уделять больше времени сосредоточению на более важных задачах.
Надеюсь, что статья полезна для вас. Желаю успехов!