Макрос для отправки письма в формате PDF через Excel - VBA

Узнай цену своей работы

Формулировка задачи:

Добрый вечер, 1. Помогите пожалуйста скорректировать макрос, так чтобы он вкладывал в письмо файл Excel в формате PDF (Лист - SP) 2. Скорректировать макрос, чтобы вставлял помимо основных получателей, еще получателей для копии письма (адреса также указаны, как для копии) Для понимания о моем уровне знаний макрос - 1 из 5 (имею лишь понятие что такое "макрос", а для составления данного макроса пользовался интернетом, вот только не нашел как вставить лист в формате .pdf и получателей для копии не работает) Вот сам макрос:
Листинг программы
  1. Sub send_emails()
  2. ThisWorkbook.Sheets("SP").Copy
  3. With ActiveWorkbook
  4. .SendMail Recipients:=Range("h21") & Range("h22").CC = Range("h25") & Range("h26"), Subject:="SP"
  5. .Close SaveChanges:=False
  6. End With
  7. End Sub

Решение задачи: «Макрос для отправки письма в формате PDF через Excel»

textual
Листинг программы
  1. Sub save_in_pdf_and_send_email()
  2. pdf_file = ThisWorkbook.Path & "" & ThisWorkbook.Name & ".pdf" 'файл ПДФ
  3. ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdf_file, _
  4.     Quality:=xlQualityStandard, _
  5.     IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
  6.  
  7. Dim objOutlookApp As Object, objMail As Object
  8. Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
  9.  
  10. On Error Resume Next
  11. Set objOutlookApp = GetObject(, "Outlook.Application")
  12. Err.Clear 'Outlook закрыт, очищаем ошибку
  13. If objOutlookApp Is Nothing Then
  14. Set objOutlookApp = CreateObject("Outlook.Application")
  15. End If
  16. objOutlookApp.Session.Logon
  17. Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение 'если не получилось создать приложение или экземпляр сообщения - выходим
  18. If Err.Number <> 0 Then
  19.     Set objOutlookApp = Nothing: Set objMail = Nothing
  20.     MsgBox "Не удалось создать новое сообщение"
  21.     Exit Sub
  22. End If
  23.  
  24. sTo = InputBox("Введите получателей (если несколько то через ;)") '
  25. sSubject = "Тема письма"
  26. sBody = "Тело письма"
  27. sAttachment = pdf_file
  28. With objMail
  29.     .To = sTo
  30.     .CC = ""
  31.     .BCC = ""
  32.     .Subject = sSubject
  33.     .Body = sBody
  34.     .Attachments.Add sAttachment
  35.     .Save
  36.     .Send
  37. End With
  38. Set objOutlookApp = Nothing: Set objMail = Nothing
  39. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы