Что делает макрос: Этот макрос показывает, как отправить вложением определенный диапазон значений, а не всю книгу.
Как макрос работает
Поскольку этот код запускается из 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 сначала объявляет две переменные. OLApp — это объектная переменная, которая предоставляет Application Outlook . OLMail — это объектная переменная, которая содержит почтовый элемент.
- Шаг 2 копирует указанный диапазон и вставляет значения и форматы во временный файл Excel. Макрос затем сохраняет этот временный файл, давая ему путь к файлу и имя файла.
- Шаг 3 активирует Outlook и начинает новый сеанс. Обратите внимание, что мы используем OLApp.Session. Войдите в систему, чтобы войти в текущий сеанс MAPI (Messaging Programming Interface Application) с учетными данными по умолчанию. Он также создает почтовое сообщение. Это эквивалентно выбору кнопки «Новое сообщение» в Outlook.
- Шаг 4 строит профиль почтового сообщения. Это включает в себя получателей, получателей CC, получатели BCC, тему, тело и вложения. Этот шаг отмечает, что получатели вводятся в кавычки и разделяют получателей точкой с запятой. Здесь, в этом коде, мы указываем наш новый временный путь к файлу Excel в качестве вложения для электронной почты. Когда сообщение построено, мы используем метод .Display для просмотра электронная почта. Мы можем заменить .Display на .Send для автоматического запуска электронной почты без просмотра.
- Мы не хотим оставлять временные файлы, поэтому после отправки электронного письма Шаг 5 удаляет временный файл Excel, который мы создали.
- Обычно рекомендуется освобождать объекты, назначенные нашим переменным. Это уменьшает вероятность любых проблем, вызванных объектами, которые могут оставаться открытыми в памяти. В шаге
- 6, мы просто устанавливаем переменную в Nothing.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.