PDA

Показать полную графическую версию : VBA | Отправить почту из Excel


rewerty
24-04-2006, 06:56
Не хватает знаний :( решить задачку:
есть ффункция или метод (не знаю как правильно) InputBox, которая показывает окно, где можно ввести информацию. Вопрос: как эту информацию можно отправить по почте и как вообще эту инфу вытянуть для дальнейшего использования?

Gerdewski
24-04-2006, 15:47
a=InpitBox()
Введенное значение присваивается переменной а.

По почте тоже можно переслать, но должен быть установлен компонент Microsoft Outlook.
Поищи SendMail в справке Microsoft Visual Basic в Excel - там написано.

rewerty
25-04-2006, 02:17
спасибо, попробую

rewerty
25-04-2006, 04:12
Что то не получается отправить по почте.
Усли писать вида A.SendMail () - выдает какието ошибки, а если ActiveWorkbook.SendMail () , то естессно отправляет всю книгу. А нужно отправить только значение А.
И ещё: при отправке выскакивает табличка, которая предупреждает об отправке и надо нажимать ОК. Как её обойти или сделать чтобы ОК само нажималось

Gerdewski
25-04-2006, 14:21
Вот тебе листинг по этому поводу из книги по 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




© OSzone.net 2001-2012