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

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

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

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

Код макроса

Sub OtpravitOdinListVlojeniem()
'Шаг 1: Объявляем переменные
Dim OLApp As Outlook.Application
Dim OLMail As Object
'Шаг 2: Скопируйте рабочую таблицу, вставьте ее в новую книгу и 'сохраните ее
Sheets("Таблица доходов").Copy
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. Мы не хотим оставлять там временные файлы, поэтому после отправки электронного письма мы удаляем временный файл Excel, который мы создали.
  6. Как правило, рекомендуется освобождать объекты, назначенные нашим переменным. Это уменьшает вероятность любых проблем, вызванных объектами, которые могут оставаться открытыми в памяти. В коде мы просто устанавливаем переменную Nothing.

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

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

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