VBA - VBA | Отправить почту из Excel

Ответить
Аватара пользователя
rewerty

VBA - VBA | Отправить почту из Excel

Сообщение rewerty »

Не хватает знаний Изображение решить задачку:

есть ффункция или метод (не знаю как правильно) InputBox, которая показывает окно, где можно ввести информацию. Вопрос: как эту информацию можно отправить по почте и как вообще эту инфу вытянуть для дальнейшего использования?
Аватара пользователя
Gerdewski

Re: VBA - VBA | Отправить почту из Excel

Сообщение Gerdewski »

a=InpitBox()

Введенное значение присваивается переменной а.



По почте тоже можно переслать, но должен быть установлен компонент Microsoft Outlook.

Поищи SendMail в справке Microsoft Visual Basic в Excel - там написано.
Аватара пользователя
rewerty

Re: VBA - VBA | Отправить почту из Excel

Сообщение rewerty »

Что то не получается отправить по почте.

Усли писать вида A.SendMail () - выдает какието ошибки, а если ActiveWorkbook.SendMail () , то естессно отправляет всю книгу. А нужно отправить только значение А.

И ещё: при отправке выскакивает табличка, которая предупреждает об отправке и надо нажимать ОК. Как её обойти или сделать чтобы ОК само нажималось
Аватара пользователя
Gerdewski

Re: VBA - VBA | Отправить почту из Excel

Сообщение Gerdewski »

Вот тебе листинг по этому поводу из книги по VB.

Пройдет-ли это в VBA на Экселе - не знаю. Извлеки нужное и пробуй.



'**************************************************************

' Посылает почтовое сообщение, используя Outlook.

'**************************************************************

Public Sub SendMail(strTo As String, strSubject As String, _

strMessageText As String, Optional strCC As String, _

Optional vntAttachmentPath As Variant)

Dim i As Integer

'**********************************************************

' С помощью объекта Outlook...

'**********************************************************

With Outlook

'******************************************************

' Создать новый объект MailItem...

'******************************************************

With .CreateItem(olMailItem)

'**************************************************

' Установить свойства этого объекта, используя

' имеющиеся аргументы.

'**************************************************

.To = strTo

.CC = strCC

.Subject = strSubject

'**************************************************

' Добавить два символа перевода строки,

' чтобы имена присоединенных файлов были отделены

' от предыдущего текста пустой строкой.

'**************************************************

.Body = strMessageText & vbCrLf & vbCrLf

'**************************************************

' Имена присоединенных файлов должны быть переданы

' в виде массива Variant с указанием путей

' к файлам, поэтому добавьте эти имена

' к собранию Attachments в этом объекте MailItem.

'**************************************************

If IsArray(vntAttachmentPath) Then

For i = 0 To UBound(vntAttachmentPath)

.Attachments.Add vntAttachmentPath(i), , Len(.Body)

Next i

End If

'**************************************************

' ' Отправить объект MailItem.

'**************************************************

.Send

End With

End With

End Sub



А про ОК попробуй

Application.DisplayAlerts = False,

а после отправки

Application.DisplayAlerts = True
Ответить

Вернуться в «Программирование и базы данных»