Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 14:17   #1
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию Отправить диаграмму из Excel в Outlook (не вложением) VBA

Всем добрый день.

Необходимо отправлять письмо с диаграммой Excel через Outlook на определенные адреса.
Определенные ячейки отправляю без проблем, также можно весь файл вложить в attachments. НО меня интересует именно то, как отправить диаграмму в самом теле письма (можно как картинку).

Вот какой код у меня пока что:

Цитата:
Sub otpr_()

Addr_ = "e.mail"
Subj_ = "test"
Text_ = ????

Set myOlApp = CreateObject("Outlook.Application")
Set myItem = myOlApp.CreateItem(olMailItem)
With myItem

.to = Addr_
.Subject = Subj_
.Body = Text_
.Send

End With
End Sub
Очень прошу помочь

Последний раз редактировалось Kycaka; 29.10.2012 в 14:21.
Kycaka вне форума Ответить с цитированием
Старый 31.10.2012, 10:10   #2
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
Восклицание

просьба помочь
Kycaka вне форума Ответить с цитированием
Старый 31.10.2012, 11:30   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Если
Цитата:
(можно как картинку).
посмотрите вот эту тему Макрос вывода статического изображения диаграммы
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 09.11.2012, 13:49   #4
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Спасибо за ссылки, но там не то.
Сохранить на ПК как картинку легко, но нужно именно в Outlook в письмо.

Прошу помочь
Kycaka вне форума Ответить с цитированием
Старый 09.11.2012, 13:55   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Надо формировать письмо в формате HTML, где путь картинки будет указан в теге <img>

Примеры есть на форуме:
http://programmersforum.ru/showthread.php?t=210092
http://programmersforum.ru/showthread.php?t=164049
EducatedFool вне форума Ответить с цитированием
Старый 09.11.2012, 17:32   #6
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Здорово, спасибо за помощь, почти все получилось
Сохраняю диаграмму на диск D -> вставляю в тело письма -> отправляю письмо = на моем ПК отображается, у других как на скрине

Цитата:
Sub export()

iThisPath = ThisWorkbook.Path
iFileName = "ChartPicture.gif"

ThisWorkbook.Worksheets(1).ChartObj ects(1).Chart.export _
Filename:=iThisPath & "\" & iFileName, FilterName:="GIF"
picfile$ = "D:\ChartPicture.gif"

ActiveSheet.ChartObjects("Äèàãðàììà 5").CopyPicture

With CreateObject("Outlook.Application")
' .Session.Logon
With .CreateItem(0)
.To = "xxx"
'.To = "xx"
'.CC = "xxx"
.Subject = "test"
.BodyFormat = 2
.HTMLBody = "<body><font face=Arial color=#000080 size=2></font>" & _
"<img width=1351 height=273 alt='' hspace=0 src='" & picfile$ & "' align=baseline order=0>&nbsp;</body>"
.Attachments.Add picfile$
.send
End With
End With
Изображения
Тип файла: jpg skrin.JPG (15.1 Кб, 269 просмотров)

Последний раз редактировалось Kycaka; 09.11.2012 в 17:34.
Kycaka вне форума Ответить с цитированием
Старый 09.11.2012, 17:36   #7
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

тут варианта всего два:

1) добавляем картинку к письму как вложение, в HTML прописываем на неё ссылку
В итоге, картинка видна и во вложениях, и в тексте письма

2) макросом (или вручную) халиваем картинку на файлообменник (ну или куда-то в инет, чтобы она была доступна по ссылке)
В HTML вставляем ссылку на картинку
В этом случае, неоторые программы (типа Outlook) могут по-умолчанию не отображать картинку
(автозагрузка картинок из интернета может быть отключена)


То, что сделали вы, - точно не вариант (согласитесь, картинка ведь дальше вашего компа не ушла - как она отобразится у получателя письма...
EducatedFool вне форума Ответить с цитированием
Старый 09.11.2012, 20:23   #8
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Продублирую ответ, данный мной на Планете:

Макросом можно либо через дебри кошмарные, либо через нестабильный SendKeys. Предположим, что код создания и отправки письма в Outlook Вы взяли с этого сайта. Я приведу лишь чуть измененный кусок кода со вставкой диаграммы с активного листа:

Код:
 With OutMail
 .To = Range("A1").Value
 .Subject = Range("A2").Value
 .Body = Range("A3").Value
 .Attachments.Add Range("A4").Value
 .display '.Send
 ActiveSheet.ChartObjects(1).Copy
 Application.SendKeys "^v"
 End With
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 13.11.2012, 12:10   #9
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Всем добрый день.
Нравится вариант с ссылкой на вложение, подскажите, пожалуйста, код
Kycaka вне форума Ответить с цитированием
Старый 13.11.2012, 12:29   #10
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

The_Prist, cпасибо за помощь, для 1 диаграммы работает нормально, правда долго. Но я планирую отправлять минимум 6 диаграмм. При таком коде ничего не получилось :
Код:
Sub otpr_()

With CreateObject("Outlook.Application")
With .CreateItem(0)
.To = "xxx"
.Subject = "test"
.display
ActiveSheet.ChartObjects("Диаграмма 2").Copy
Application.SendKeys "^v"
ActiveSheet.ChartObjects("Диаграмма 3").Copy
Application.SendKeys "^v"
ActiveSheet.ChartObjects("Диаграмма 4").Copy
Application.SendKeys "^v"
.send
End With
End With

Мне нравится вариант EducatedFool с ссылок на вложение, только пока не могу додуматься как ссылку написать

Последний раз редактировалось Kycaka; 13.11.2012 в 12:31.
Kycaka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA вставка в Outlook диапазона из Excel mrMad-Cat Microsoft Office Excel 9 23.10.2015 11:47
[WinAPI] Как отправить письмо с вложением? Ёжик в тумане Win Api 5 04.02.2012 18:08
Microsoft Office Outlook :проблемы с вложением Vitter Софт 1 12.06.2008 11:05
Как отправить Access-ом сообщение по Outlook? ИгнатАлт Microsoft Office Access 2 23.11.2007 18:47