Консультация № 178707
28.05.2010, 10:31
0.00 руб.
0 15 1
Уважаемые эксперты, ранее я задавал вопрос как отправить письмо при помощи ВБА по ЗеБат
Ответ не получил, есть вариант через Outlook, который есть в любой Windows
Нашёл код в сети:
Dim objOL As Outlook.Application, objMail As MailItem, objAttach As Outlook.Attachments
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
Set objAttach = objMail.Attachments
With objMail
.To = "mm@mm.ru; dd@dd.ru" ' адрес, несколько через ;
.Subject = "Это тема письма"
.Body = "Это текст письма"
.Display ' показать окно письма
.Send ' отправить автоматом
End With
Set objMail = Nothing
Set objOL = Nothing
Set objAttach = Nothing

Из
http://www.sql.ru/forum/actualthread.aspx?tid=726112
Почему то у меня выделяет "objOL As Outlook.Application", что не так как исправить???
Спасибо Эндрю

Обсуждение

давно
Профессор
230118
3054
28.05.2010, 10:51
общий
это ответ
Здравствуйте, Ципихович Эндрю.

После As везде в этой строчке пишите Object
Dim objOL As Object, objMail As Object, objAttach As Object

Код, который Вы нашли, будет работать без изменений в Visual Studio(любой версии).
5
Неизвестный
28.05.2010, 11:43
общий
Гаряка Асмик:
С первой строчкой понятно, теперь вторую выделяет:
Dim objOL As Object, objMail As Object, objAttach As Object
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
Set objAttach = objMail.Attachments
With objMail
.To = "mm@mm.ru; dd@dd.ru" ' адрес, несколько через ;
.Subject = "Это тема письма"
.Body = "Это текст письма"
.Display ' показать окно письма
.Send ' отправить автоматом
End With
Set objMail = Nothing
Set objOL = Nothing
Set objAttach = Nothing
давно
Профессор
230118
3054
28.05.2010, 13:55
общий
Ципихович Эндрю:
Нужно добавить ссылку на библиотеку. Зайдите в меню Tools-References, найдите Microsoft Outlook Object Library и поставьте птичку.
Неизвестный
28.05.2010, 15:39
общий
Гаряка Асмик:
Спасибо за ответ.
Может Вы не видели того вопроса, а то же самое с ЗеБат проделать можно???
давно
Профессор
230118
3054
28.05.2010, 15:47
общий
Ципихович Эндрю:
Нет, Bat не продукция Microsoft
Неизвестный
28.05.2010, 18:03
общий
Гаряка Асмик:
И последних два подвопросика
Вот это " Зайдите в меню Tools-References, найдите Microsoft Outlook Object Library и поставьте птичку" програмно можно сделать?, как?
Я понимаю что не тяжело сделать самому но всё же.
А можно и как находясь в документе Ворд выделить часть текста, запустить макрос, что с этой части он сделал темпашку и её посылал по Microsoft Outlook?
Неизвестный
28.05.2010, 19:09
общий
Ципихович Эндрю:
Попробуйте заменить эту строку следующей:
Set objOL = CreateObject("Outlook.Application")
Неизвестный
28.05.2010, 19:16
общий
Измалков Эдуард Леонидович:
Это совет по какой части
1 как програмно сделать: Зайдите в меню Tools-References, найдите Microsoft Outlook Object Library и поставьте птичку
или
2 как находясь в документе Ворд выделить часть текста, запустить макрос, что с этой части он сделал темпашку и её посылал по Microsoft Outlook
Неизвестный
28.05.2010, 19:23
общий
Ципихович Эндрю:
Запустить Outlook не используя никаких библиотек. Т.е. чтобы не пришлось заходить в Tolls-References
Неизвестный
28.05.2010, 19:25
общий
Измалков Эдуард Леонидович:
ВЫ говорите Попробуйте заменить эту строку - какую ???
Неизвестный
28.05.2010, 19:32
общий
Измалков Эдуард Леонидович:
Понял какую
Неизвестный
28.05.2010, 19:45
общий
Гаряка Асмик:
А можно и как находясь в документе Ворд выделить часть текста, запустить макрос, что с этой части он сделал темпашку и её посылал по Microsoft Outlook?
давно
Профессор
230118
3054
28.05.2010, 19:50
общий
.Body = ActiveDocument.Selection
Неизвестный
24.06.2010, 17:34
общий
Гаряка Асмик:
Ранее было некогда сегодня попробовал код проходит полностью, но письмо не дошло почему????
Этой же строкой: Body = ActiveDocument.Selection
Не решить:
А можно и как находясь в документе Ворд выделить часть текста, запустить макрос, что с этой части он сделал темпашку и её посылал по Microsoft Outlook
Как решить???

Неизвестный
25.06.2010, 11:47
общий
Гаряка Асмик:
В настоящее время я делаю нижеследующим образом, там ошибка возникает, почему, подскажите, пожалуйста:
'отправка письма по Microsoft Outlook
Dim objOL As Object, objMail As Object, objAttach As Object
'для работоспособности нужно добавить ссылку на библиотеку
'зайдите в меню Tools-References, найдите Microsoft Outlook Object Library, поставьте птичку
'Set objOL = New Outlook.Application
Set objOL = CreateObject("Outlook.Application") 'данная строка позволяет работать с Microsoft Outlook не подключая библиотеку Microsoft Outlook
Set objMail = objOL.CreateItem(olMailItem)
Set objAttach = objMail.Attachments

If Len(ActiveDocument.Path) = 0 Then
MsgBox "Документ должен быть вначале сохранен"
Exit Sub
End If

With objMail
.To = "89028912680@rambler.ru" 'адрес, несколько адресов через ;
.Subject = "Это тема письма"
'Добавляя документ как приложение к письму, Вы можете использовать
'свойство .displayname для установки описания используемого в сообщении
.Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue, _
DisplayName:="Документ в приложении" 'здесь ощибка 446, почему???, ЧТО НАДО ИЗМЕНИТЬ????
.Display 'показать окно письма
.Send 'отправить автоматом
End With
Set objMail = Nothing
Set objOL = Nothing
Set objAttach = Nothing

Форма ответа