Собственно нужно содержимое некоего листа книги Excel отправить в тело письма Outlook?
Я пытался сделать так, не выходит.
Dim SM As Outlook.MailItem Dim sp sp = "spg!" + ThisWorkbook.Worksheets("spg").UsedRange.Address iMassiv = ThisWorkbook.Worksheets("spg").Range(sp).Value SM.Body = iMassiv
Пробовал через макрорекордер отследить процесс Файл - Отпрвить - Сообщение - Включить текущий лист в текст сообщения. Но макрорекордер видимо не пишет такие процессы :(
Антон, на предыдущей странице есть тема Нужен макрос на кнопку - отправка файла на эл.почту! "Нужен макрос на кнопку - отправка файла на эл.почту!" Та и ответы есть. Неужели за вас искать? Самим трудно?
{quote}{login=}{date=30.08.2008 02:17}{thema=}{post}Антон, на предыдущей странице есть тема Нужен макрос на кнопку - отправка файла на эл.почту! "Нужен макрос на кнопку - отправка файла на эл.почту!" Та и ответы есть. Неужели за вас искать? Самим трудно?{/post}{/quote}
Уважаемый аноним!
Боюсь вы не вникли в суть моего вопроса. В теме на которую вы ссылаетесь рассматривается вопрос отправки ВСЕЙ КНИГИ ВО ВЛОЖЕНИИ, а мне надо отправить СОДЕРЖАНИЕ (текст) ОДНОГО ЛИСТА В ТЕЛЕ ПИСЬМА.
Введите любой текст на лист и попробуйте выполнить (Файл - Отправить - Сообщение - Включить текущий лист в текст сообщения) и посмотрите какое письмо при этом будет создано. Мне необходимо выполнить это программно.
А поиском я пользоваться умею, решения подобной задачи пока не нашел.
а чтобы уж совсем конкретно ответить на вопрос, приложу еще и сам код. отмечу, что данный код сохраняет заранее заданный диапазон в отдельной книге, включает ее в качестве вложения в письмо, в котором уже заполнены поля "тема", "кому" и ждет команды об отправке.
вот код:
Sub "название макроса"() 'Working in 2000-2007 Dim Source As Range Dim Dest As Workbook Dim wb As Workbook Dim TempFilePath As String Dim TempFileName As String Dim FileExtStr As String Dim FileFormatNum As Long Dim OutApp As Object Dim OutMail As Object
Set Source = Nothing On Error Resume Next 'копируемый диапазон Set Source = Range("E28:T65")
On Error GoTo 0
With Application .ScreenUpdating = False .EnableEvents = False End With
Set wb = ActiveWorkbook Set Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy With Dest.Sheets(1) .Cells(1).PasteSpecial Paste:=8 .Cells(1).PasteSpecial Paste:=xlPasteValues .Cells(1).PasteSpecial Paste:=xlPasteFormats .Cells(1).Select Application.CutCopyMode = False End With 'диапазон в новой книге где выставляются границы печати Range("A1:P38").Select
If Val(Application.Version) < 12 Then 'You use Excel 2000-2003 FileExtStr = ".xls": FileFormatNum = -4143 Else 'You use Excel 2007 FileExtStr = ".xls": FileFormatNum = 56 End If
Set OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon Set OutMail = OutApp.CreateItem(0)
With Dest .SaveAs TempFileName & FileExtStr, FileFormat:=FileFormatNum 'TempFilePath & On Error Resume Next With OutMail .To = "адрес кому" .cc = "" .BCC = "" .Subject = TempFileName .Body = "текст в теле письма" .Attachments.Add Dest.FullName 'You can add other files also like this '.Attachments.Add ("C:\test.txt") .Display 'or use .Display End With On Error GoTo 0 .Close SaveChanges:=False End With
'Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing Set OutApp = Nothing
With Application .ScreenUpdating = True .EnableEvents = True End With End Sub
Спасибо за исчерпывающий ответ. Однако указанный вами пост мне удалось обнаружить до того как вы мне дали на него ссылку. И приведенный там код отправляет лист В ВИДЕ ВЛОЖЕНИЯ, а мне необходимо отправить содержание листа (ТОЛЬКО ТЕКСТ) В ТЕЛЕ ПИСЬМА (.body).
Повторюсь. Для понимания того что мне нужно попробуйте ввести любой текст на лист и выполните (Файл - Отправить - Сообщение - Включить текущий лист в текст сообщения) и посмотрите какое письмо при этом будет создано (ПИСЬМО БЕЗ ВЛОЖЕНИЯ, ТОЛЬКО ТЕКСТ). Мне необходимо выполнить это программно.
{quote}{login=mazayZR}{date=01.09.2008 01:13}{thema=}{post}тогда можно я вас пошлю на один англоязычный сайт? там много вкусного :-) http://www.rondebruin.nl/sendmail.htm{/post}{/quote}
Вот спасибо! :) Я там действительно много вкусного нашел и то что мне надо тоже )))