Нужно для начала создать отдельную новую книгу, содержащую нужный лист. Например, так:
Set aw = ActiveWorkbook
Set nw = Workbooks.Add
aw.ActiveWorksheet.Copy After:=nw.Sheets(1)
Application.DisplayAlerts = False
nw.Sheets(1).Delete
Application.DisplayAlerts = True
aw.Activate
Если адрес уже известен, то далее можно сделать так:
nw.SendMail(MailAddress, SubjectString, ReturnReceipt)
Здесь nw - книга со скопированным в ее выбранным листом, MailAddress должен быть присвоен e-mail адрес (или это должен быть массив (Array) строковых значений с адресами, чтобы отправить письмо на несколько адресов), SubjectString - строка для поля Тема в отправляемом письме, ReturnReceipt - True или False (или опущен, тогда будет, как False) - признак запроса об отправке извещения о получении. После отработки письмо будет в Исходящих почтового клиента, зарегистрированного в ОС по умолчанию. При очередной проверке/отправке почты клиентом, сообщение уйдет по назначенному адресу с учетной записи "по умолчанию".
Если адрес неизвестен и нужно только подготовить сообщение к отправке, открыв диалог редактирования сообщения в почтовом клиенте, то:
Application.Dialogs(xlDialogSendMail).Show
В подготавливаемое сообщение будет автоматически включена активная в данный момент книга и это сообщение откроется в режиме его редактирования. Здесь можно будет ввести адрес, тему и текст в сообщение в стандартном окне почтового клиента (того, который в ОС по умолчанию), и отправить сообщение, как обычно.
Ответить
|