Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   VBA | Отправить почту из Excel (http://forum.oszone.net/showthread.php?t=64806)

rewerty 24-04-2006 06:56 431077

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

Gerdewski 24-04-2006 15:47 431198

a=InpitBox()
Введенное значение присваивается переменной а.

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

rewerty 25-04-2006 02:17 431305

спасибо, попробую

rewerty 25-04-2006 04:12 431323

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

Gerdewski 25-04-2006 14:21 431466

Вот тебе листинг по этому поводу из книги по 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


Время: 07:04.

Время: 07:04.
© OSzone.net 2001-