1 (изменено: gk.lan, 2021-08-25 15:36:25)

Тема: VBA: открытие файла при получении письма с определенной темой

добрый день!

Идея такая:
Необходимо при получении письма в OUTLOOK с определенной темой выполнялся макрос, который бы открывал определенный файл.
Нашел похожий код, добавил в него:

If mailmsg.Subject = "#qweasd##"     '#qweasd## - это тема письма

:

Private Sub Items_ItemAdd(ByVal item As Object)
   ' При поступлении нового письма производится его обработка
   Dim mailItems As Items
   Dim mailmsg As MailItem
   Dim i As Integer, j As Integer, FromMail(10) As String   ' до 10 адресов
 
   ' --- Настройки ---
   ' SavePath = "D:\Work\"                ' путь, куда будем сохранять - с \ на конце!
   ' FromMail(0) = "alpha@mail.ru"        ' От кого - массив до 10 отправителей
   ' FromMail(1) = "beta@mail.ru"
   ' FromMail(2) = "gamma@mail.ru"
   ' FromMail(3) = "delta@mail.ru"
 
   ' Набор писем из папки "Входящие"
   Set mailItems = Application.Session.GetDefaultFolder(olFolderInbox).Items
   '---Set mailmsg = mailItems.GetLast ' выбираем последнее
   ' далее выполняется анализ письма(его реквизитов, содержимого и пр.)
   'mailmsg.ReceivedTime   ' например, время получения письма
   ' ...
   ' по результатам анализа можно:
   'mailmsg.UnRead = False  ' установить признак "Прочтенное"
   'mailmsg.Delete          ' удалить
   'mailmsg.Move (myFolder) ' переместить в другую папку
 
   For Each mailmsg In mailItems ' все сообщения в папке
      'If mailmsg.UnRead Then     ' анализируем только непрочитанные
       If mailmsg.Subject = "#qweasd##" Then ' [b]анализ писем с определенной темой[/b]
         For j = 0 To UBound(FromMail) - 1   ' отправитель письма - в нашем списке?
            If LCase(mailmsg.SenderEmailAddress) = LCase(FromMail(j)) Then
               For i = 1 To mailmsg.Attachments.Count   ' сохранить все вложения (если они там есть)
                  mailmsg.Attachments.item(i).SaveAsFile (SavePath & mailmsg.Attachments.item(i).FileName)
               Next
               If mailmsg.Attachments.Count >= 1 Then mailmsg.UnRead = False  ' установить признак "прочтенное", если там были вложения
               Exit For    ' если от кого-то сохранили, дальнейших отправителей можно не проверять
            End If
         Next
      End If
   Next
End Sub

Но как дальше указать на открытие опрелеленного файла не понимаю.

Я можно сказать новичок в этой теме - сильно не пинайте.

2

Re: VBA: открытие файла при получении письма с определенной темой

gk.lan, добро пожаловать на форум!
Ознакомьтесь, пожалуйста, с правилами, отредактируйте свой пост. Обратите внимание на заглавные буквы в начале и точки в конце предложений.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: VBA: открытие файла при получении письма с определенной темой

teadrinker, что дальше?

4

Re: VBA: открытие файла при получении письма с определенной темой

Дальше ждите ответа, если кто-то его знает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder