Как отправить электронное письмо из электронной таблицы Excel с помощью скрипта VBA

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

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

Электронная почта из Excel с VBA

  1. Зачем отправлять электронную почту из Excel?
  2. Как отправить электронное письмо из электронной таблицы Excel с помощью скрипта VBA
    1. Шаг 1. Создайте макрос VBA
    2. Шаг 2. Задайте поля «От» и «Кому» в CDO.
    3. Шаг 3. Настройте CDO для использования внешнего SMTP
    4. Шаг 4. Завершите настройку CDO
  3. Автоматизируйте весь процесс

Зачем отправлять электронную почту из Excel?

Есть много причин, по которым вы можете захотеть отправлять электронные письма из Microsoft Excel.

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

Вы можете подумать, что использовать скрипты Excel будет сложно. Но будьте уверены! Сделать это очень просто.

Эта статья покажет вам, как использовать функцию, доступную в Excel VBA в течение длительного времени. Это объекты данных совместной работы (CDO).

Изображение 1: Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

CDO — это компонент процесса электронной почты, используемый в первых операционных системах Windows. Ранее оно называлось CDONTS, а затем, с появлением Windows 2000 и XP, это название было заменено на «CDO для Windows 2000» (CDO для Windows 2000). Этот компонент был включен в установку VBA в приложениях Microsoft Word или Excel и готов к использованию.

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

Как отправить электронное письмо из электронной таблицы Excel с помощью скрипта VBA

Шаг 1. Создайте макрос VBA

Первый шаг — войти на вкладку Excel Developer.

На вкладке «Разработчик» нажмите «Вставить» в поле «Элементы управления», а затем выберите соответствующую командную кнопку.

Изображение 2: как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

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

Изображение 3: как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Когда вы нажмете кнопку «Создать», откроется редактор VBA.

Добавьте ссылки в библиотеку CDO, выбрав Инструменты> Ссылки в редакторе.

Изображение 4: Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

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

Изображение 5: Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Когда вы нажимаете ОК, помните имя функции, которую вы вставляете в скрипт. Вам это понадобится позже.

Шаг 2. Задайте поля «От» и «Кому» в CDO.

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

Имейте в виду, что, хотя многие поля являются необязательными, вы должны ввести поля От и Куда.

Dim CDO_Mail As Object Dim CDO_Config As Object Dim SMTP_Config As Variant Dim strSubject As String Dim strFrom As String Dim strTo As String Dim strCc As String Dim strBcc As String Dim strBody As String strSubject = «Результаты из таблицы ExcelFrom =» rdu .com «strTo =» rdube02@gmail.com «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») При ошибке GoTo Error_Handling Установите CDO_Config = CreateObject («CDO.Configuration») CDO_Config.Load -1 Установите SMTP_Config = CDO_Config.Fields с SMTP_Config .Item («http://schemas .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@website.com «.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 .Configuration = CDO_Config Завершить с помощью

Шаг 4. Завершите настройку CDO

Теперь вы настроены для подключения к SMTP-серверу для отправки электронной почты. Все, что вам нужно сделать, это заполнить соответствующие поля для объекта CDO_Mail и подать команду «Отправить».

Вот как это сделать:

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: If Err.Description «» Сообщение об ошибке «»

Предупреждений о безопасности не будет. Это может произойти, когда вы используете почтовый объект Outlook.

CDO просто нужно собрать все компоненты электронной почты вместе и использовать данные подключения к SMTP-серверу, чтобы включить доставку почты. Это самый простой способ объединить электронную почту в сценарии Microsoft Word или Excel VBA.

Чтобы подключить кнопку Command к этому сценарию, перейдите в редактор кода и щелкните Sheet1, чтобы увидеть код VBA для этого листа.

Введите имя функции, которую вы вставили в скрипт выше.

Изображение 6 из Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Это письмо, которое вы получите в свой почтовый ящик:

Изображение 7 из Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Примечание. Если вы получаете сообщение об ошибке Транспортному транспорту не удалось подключиться к серверу, убедитесь, что вы ввели правильное имя пользователя, пароль, SMTP-сервер и номер порта в строках кода, перечисленных ниже с помощью SMTP_Config.

Автоматизировать весь процесс

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

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

Изображение 8 из Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Затем выберите ThisWorkbook в иерархии проектов.

В двух раскрывающихся полях в верхней части окна кода выберите «Рабочая книга» и «Открыть» в раскрывающемся меню «Методы».

Вставьте приведенный выше сценарий электронной почты в Private Sub Workbook_Open ().

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

Затем откройте планировщик заданий.

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

Изображение 9 из Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Выберите «Создать базовую задачу». из меню «Действие» и продолжайте работать с мастером, пока не дойдете до экрана «Действие».

Выберите «Запустить программу» и нажмите «Далее».

Изображение 10 из Как отправить электронное письмо из электронной таблицы Excel с помощью сценария VBA

Используйте кнопку «Обзор», чтобы найти Microsoft Excel на вашем компьютере, или скопируйте и вставьте путь в поле «Программа / сценарий».

Затем введите путь к вашему документу Microsoft Excel в поле Добавить аргументы.

Завершите свой процесс, и график будет готов.

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

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

Для этого откройте электронную таблицу и перейдите в меню «Файл»> «Параметры»> «Центр управления безопасностью».

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

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

Однако, имея небольшой опыт работы с VBA, вы скоро сможете запрограммировать Microsoft Excel для автоматического выполнения основных задач, что даст вам больше времени, чтобы сосредоточиться на более важных вопросах.

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

Удачи!

Узнать больше:

  1. Создайте свой собственный Интернет-браузер с помощью VBA
  2. Как взломать пароль VBA в Excel
  3. OpenOffice.org Calc добавляет поддержку Excel VBA

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *