Листинг 2. Функция SendMail в модуле класса clsEmailMerge
Public Function SendMail() As Integer
‘ отправка писем
Dim olMail As MailItem
Dim olTemplateRecipient As Recipient
Dim olRecipient As Recipient
Dim xlDataRow As Range
Dim nCount As Integer
On Error GoTo EmailSendError
‘ Просмотр в цикле строк, входящих в заданный диапазон данных
For nCount = 1 To DataRange.Rows.Count
Set xlDataRow = DataRange.Rows(nCount)
‘ Создание нового элемента электронной
‘ почты
Set olMail = CreateItem(olMailItem)
‘ Слияние строки Subject
olMail.Subject = ParseString(Template.Subject, xlDataRow
‘ Слияние текста сообщения
olMail.Body = ParseString(Template.Body,xlDataRow)
‘ Копирует всех получателей,
‘ которые могут быть указаны в шаблоне
For Each olTemplateRecipient In Template.Recipients
Set olRecipient = _
olMail.Recipients.Add(olTemplateRecipient.Name)
olRecipient.Type = olTemplateRecipient.Type
Next olTemplateRecipient
‘ Объединяет список получателей со столбцом Address в Excel
If AddressCol <> 0 Then
‘ Устанавливает адрес на основании
‘ данных
‘ столбца, который использовался для
‘ определения имени получателя
olMail.To = xlDataRow.Cells(1, AddressCol).Value
End If
olMail.Send ‘ Отправляет сообщение
‘ Next nCount
SendMail = 0 ‘ Сообщает об отсутствии ошибок
Exit Function
EmailSendError:
SendMail = 1 ‘ Сообщает об ошибке
End Function