Excel VBA: Диапазон ячеек листа отправить почтой?

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

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

Здравствуйте.
В интернете много примеров, где происходит отправка письма, с простым текстом.
Как бы мне отправить в качестве тела письма не просто текст, а например, табличку, с границами и определённой заливкой?
Т.е. грубо говоря "

Range

"
Я в курсе, что есть свойство

.HTMLBody

, но это слишком затратно, каждую ячейку "причесывать" HTML-тегами, я просто замучаюсь.
Есть ли какой-то более изящный или может "коробочный" способ вложить форматированную табличку в письмо?
Совсем недавно мне подсказали на этом форуме очень ценный прием, при помощи которого можно сохранять форматирование и границы диапазонов

Range("zzz").Value(11)

Кто бы догадывался, что Value - это массив, а 11-ый элемент, это XML-описание диапазона?!
Может быть есть какой то подобный элемент, который хранит HTML-вариант диапазона? Или я много хочу? ))

Решение задачи: «Excel VBA: Диапазон ячеек листа отправить почтой?»

textual
Листинг программы
'Отправка заданного диапазона почтой
Sub Send_Mail(Address As String)
    
    Dim AWorksheet As Worksheet
    Dim sndRange As Range
    Dim rng As Range
        
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    
    Set sndRange = Range(Address)
    Set AWorksheet = ActiveSheet
    
    With sndRange
        
        .Parent.Select
        Set rng = ActiveCell
        
        .Select
                
        ActiveWorkbook.EnvelopeVisible = True
        With .Parent.MailEnvelope
            .Introduction = "Тема письма"
            With .Item
                .To = "user@server.ru"
                .CC = ""
                .BCC = ""
                .Subject = "Таблица с оформлением"
                .Send
            End With
        End With
           
        rng.Select
           
    End With
    
    AWorksheet.Select
    
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
    
    ActiveWorkbook.EnvelopeVisible = False
    
End Sub

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


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

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

9   голосов , оценка 4 из 5
Похожие ответы