Страницы: 1
RSS
Отправка письма из Excel через Outlook с вложением., Помогите разобраться с кодом макроса
 
Доброго времени всем.
На просторах сети нашел вот такой код отправляющий письма из Excel без таблички "разрешить".
Отправляет на ура, но не могу понять как с его помощью отправлять активный лист.
Пробовал делать как написанно в комментариях, не получается. Письмо всегда пустое уходит.
Помогите знатоки допилить.
Код
Option Explicit

Sub Send_Mail()
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String

    Application.ScreenUpdating = False
    On Error Resume Next
    'пробуем подключиться к Outlook, если он уже открыт
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear 'Outlook закрыт, очищаем ошибку
    If objOutlookApp Is Nothing Then
        Set objOutlookApp = CreateObject("Outlook.Application")
    End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
    'если не получилось создать приложение или экземпляр сообщения - выходим
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
    
    sTo = "AddressTo@mail.ru"    'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
    sSubject = "Автоотправка"    'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
    sBody = "Привет от Excel-VBA"    'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value)
    sAttachment = "C:\Temp\Книга1.xls"    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)
    
    'создаем сообщение
    With objMail
        .To = sTo 'адрес получателя
        .CC = "" 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject 'тема сообщения
        .Body = sBody 'текст сообщения
        '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
        .Attachments.Add sAttachment 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
        .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
    End With

    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub

До него пользовался вторым способом отправки отсюда Отправка книги или листа по электронной почте  спасибо Николаю.
Изменено: sarathin - 12.06.2016 16:22:25 (добавил файл примера)
 
Так у меня работает
Код
    sAttachment = "C:\Кн.xls"  
    ActiveSheet.Copy
    Set wb = ActiveSheet.Parent
    wb.SaveAs Filename:=sAttachment, _
              FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    wb.Close (False)
Изменено: Doober - 12.06.2016 17:21:51
 
Цитата
Doober написал: Так у меня работает
Можете показать куда это вставить?
 
Вставил.
Скрытый текст
 
Doober,спасибо!
Страницы: 1
Читают тему
Наверх