Как отправить диапазон значений вложением

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

Как макрос работает

Поскольку этот код запускается из Excel, необходимо установить ссылку на библиотеку объектов Microsoft Outlook. Мы можем установить ссылку, открыв редактор Visual Basic в Excel и выбрав Tools➜References. Прокрутите вниз, пока не найдете запись Microsoft Outlook XX Object Library, где XX — это ваша версия Outlook. Установите флажок рядом с записью.

Код макроса

Sub OtpravitDiapazonVlojeniem()

'Шаг 1: Объявляем переменные
Dim OLApp As Outlook.Application
Dim OLMail As Object

'Шаг 2: Скопируйте диапазон, вставьте в новую книгу и сохраните ее
Sheets("Таблица доходов").Range("A1:E7").Copy
Workbooks.Add
Range("A1").PasteSpecial xlPasteValues
Range("A1").PasteSpecial xlPasteFormats
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\TempRangeForEmail.xlsx"

'Шаг 3: Откройте Outlook начать новый пункт почты
Set OLApp = New Outlook.Application
Set OLMail = OLApp.CreateItem(0)
OLApp.Session.Logon

'Шаг 4: Построить наш почтовый пункт и отправить
With OLMail
    .To = "admin@datapigtechnologies.com; mike@datapigtechnologies.com"
    .CC = ""
    .BCC = ""
    .Subject = "Тема письма"
    .Body = "Образец файла прилагается"
    .Attachments.Add (ThisWorkbook.Path & "\TempRangeForEmail.xlsx")
    .Display
End With

'Шаг 5: Удалить временный файл Excel
ActiveWorkbook.Close SaveChanges:=True
Kill ThisWorkbook.Path & "\TempRangeForEmail.xlsx"

'Шаг 6: Очистка памяти
Set OLMail = Nothing
Set OLApp = Nothing

End Sub

Как этот код работает

  1. Шаг 1 сначала объявляет две переменные. OLApp — это объектная переменная, которая предоставляет Application Outlook . OLMail — это объектная переменная, которая содержит почтовый элемент.
  2. Шаг 2 копирует указанный диапазон и вставляет значения и форматы во временный файл Excel. Макрос затем сохраняет этот временный файл, давая ему путь к файлу и имя файла.
  3. Шаг 3 активирует Outlook и начинает новый сеанс. Обратите внимание, что мы используем OLApp.Session. Войдите в систему, чтобы войти в текущий сеанс MAPI (Messaging Programming Interface Application) с учетными данными по умолчанию. Он также создает почтовое сообщение. Это эквивалентно выбору кнопки «Новое сообщение» в Outlook.
  4. Шаг 4 строит профиль почтового сообщения. Это включает в себя получателей, получателей CC, получатели BCC, тему, тело и вложения. Этот шаг отмечает, что получатели вводятся в кавычки и разделяют получателей точкой с запятой. Здесь, в этом коде, мы указываем наш новый временный путь к файлу Excel в качестве вложения для электронной почты. Когда сообщение построено, мы используем метод .Display для просмотра электронная почта. Мы можем заменить .Display на .Send для автоматического запуска электронной почты без просмотра.
  5. Мы не хотим оставлять временные файлы, поэтому после отправки электронного письма Шаг 5 удаляет временный файл Excel, который мы создали.
  6. Обычно рекомендуется освобождать объекты, назначенные нашим переменным. Это уменьшает вероятность любых проблем, вызванных объектами, которые могут оставаться открытыми в памяти. В шаге
  7. 6, мы просто устанавливаем переменную в Nothing.

Как использовать

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

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
  3. Выберите Insert➜Module.
  4. Введите или вставьте код.
Оцените статью
Добавить комментарий