Есть несколько способов поиска определённого текста в теле письма с помощью VBA. Можно воспользоваться функциями InStr, Len, Left или Right, чтобы найти и извлечь текст, а можно воспользоваться регулярными выражениями. Именно о применении регулярных выражений в коде VBA пойдёт речь в данной статье.
Например, требуется извлечь код отслеживания посылки UPS, отправленной с Amazon.com. Такой код имеет формат как на скриншете ниже:
Нужно находить в тексте слова «Carrier Tracking ID», затем, возможно, пробел и двоеточие.
.Pattern = "(Carrier Tracking ID\s*[:]+\s*(\w*)\s*)"
Такое выражение извлечёт из текста из примера цифро-буквенный код 1Z2V37F8YW51233715.
Продолжить чтение »
Если после выполнения макроса необходимо отправить в качестве вложения получившийся документ Excel, можно использовать следующий код. Он создаёт письмо с нужным перечнем адресатов в полях «Кому» и «Копия», с указанной темой, текстом и прикреплённым Excel файлом. Остаётся толкьо дописать письмо в случае необходимости и нажать кнопку «Отправить».
Dim OutlookApp As Object, SM As Object Set OutlookApp = CreateObject("Outlook.Application") Set SM = OutlookApp.CreateItem(olMailItem) 'SM.SentOnBehalfOfName = "mail@example.ru" 'Поле "От", если нужен другой отправитель SM.To = "mail@example.ru" 'Поле "Кому" SM.CC = "mail@example.ru" 'Поле "Копия" SM.Subject = "Тема письма" On Error Resume Next SM.Body = "Текст письма" SM.Attachments.Add ("C:\Test.xls") 'Адрес вложения SM.Display Set SM = Nothing Set OutlookApp = Nothing |
Продолжить чтение »