Страницы: 1
RSS
Добавление таблицы после текста в письмо Outlook через VBA
 
Добрый день
Подскажите, как доработать макрос, чтобы ниже текста вставлялась из буфера обмена таблица с данными в текст письма Outlook

Спасибо.
Код
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 = email   'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
    sSubject = ThisWorkbook.Sheets(1).Cells(15, 1)   'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
    sBody = body1    'Текст письма(можно заменить значением из ячейки
    sAttachment = ThisWorkbook.Path & "\" & filename1    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)
 
    'создаем сообщение
      With objMail
        .To = sTo 'адрес получателя
        .CC = iTM 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject 'тема сообщения
        .body = ThisWorkbook.Sheets(1).Cells(18, 1) 'текст сообщения
        '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
        .Attachments.Add sAttachment 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
     
        .Display
'        .Send   ', если необходимо просмотреть сообщение, а не отправлять без просмотра
        
    End With
 
    Set objOutlookApp = Nothing: Set objMail = Nothing
    Application.ScreenUpdating = True
End Sub
 
Цитата
Jenya1980 написал:
из буфера обмена
именно из буфера обмена? А в буфере что?
P.S. На том сайте, откуда взяли этот код есть так же код вставки в письмо таблицы с форматированием из листа Excel.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
именно из буфера обмена? А в буфере что?
В буфере как раз хранится таблица.
Не нашел на сайте(
Я просто давно использую этот код для отправки и вот возникла задача вставить таблицу
 
Если в буфере - то это большая проблема. Кроме SendKeys вменяемых вариантов нет.
Цитата
Jenya1980 написал:
Не нашел на сайте
Вставить в письмо Outlook таблицу Excel с форматированием
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А почему у меня не вставляется текст из ячейки (18,1) + копипаст?
То есть у меня вставляется только скопированная таблица без текста перед ней
То есть сначала нужен текст, а потом все остальное
Код
 'создаем сообщение
      With objMail
        .To = sTo 'адрес получателя
        .CC = iTM 'адрес для копии
        .BCC = "" 'адрес для скрытой копии
        .Subject = sSubject 'тема сообщения
        .body = ThisWorkbook.Sheets(1).Cells(18, 1) 'текст сообщения
'        .HTMLBody = ThisWorkbook.Sheets(1).Cells(18, 1) 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.)
        .Attachments.Add sAttachment 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName
  .HTMLBody = ConvertRngToHTM(Selection)
Страницы: 1
Наверх