Excel VBA для поиска в почтовых сообщениях Outlook

Я работаю над проектом, где у меня есть список идентификаторов учетных записей, и я пытаюсь создать макрос, который будет взаимодействовать с Outlook, искать мой почтовый ящик для любого письма с конкретными критериями, а затем возвращать " Y "или" N ", если он был найден, и если он был найден, кто отправил электронное письмо и время его отправки. Ниже приведен код, который я использую; Мне нужен макрос, чтобы искать тело электронной почты вместо темы. Когда я подставляю [Subject] для [Body], макрос работает без ошибок, но не возвращает никаких электронных писем (я помещаю пару тестовых писем, чтобы их можно было поймать). Я запускаю Excel и Outlook 2007 и уже имею ссылку на библиотеки MS Excel 12.0 Excel и Outlook в VBA.

Sub Work_with_Outlook() Set outlookApp = CreateObject("Outlook.Application") Dim olNs As Outlook.Namespace Dim Fldr As Outlook.MAPIFolder Dim olMail As Variant Dim sir() As String Set outlookApp = New Outlook.Application Set olNs = outlookApp.GetNamespace("MAPI") Set Fldr = olNs.GetDefaultFolder(olFolderInbox) Set myTasks = Fldr.Items Set olMail = myTasks.Find("[Subject] = ""123456""") If Not (olMail Is Nothing) Then olMail.Display End If End Sub 

Вы не можете использовать Body in Find (Filter), см. Items.Find Method (Outlook) , в качестве обходного пути вы можете использовать функцию поиска строки VBA:

 Sub sofWorkWithOutlook20082550() Dim outlookApp Dim olNs As Outlook.Namespace Dim Fldr As Outlook.MAPIFolder Dim olMail As Variant Dim myTasks Dim sir() As String 'Set outlookApp = New Outlook.Application Set outlookApp = CreateObject("Outlook.Application") Set olNs = outlookApp.GetNamespace("MAPI") Set Fldr = olNs.GetDefaultFolder(olFolderInbox) Set myTasks = Fldr.Items ' 'Set olMail = myTasks.Find("[Subject] = ""123456""") ' For Each olMail In myTasks ' If (InStr(1, olMail.Body, "My-Text-to-Search", vbTextCompare) > 0) Then olMail.Display Exit For End If Next End Sub 
  • Автоматические почтовые сообщения Outlook с использованием VBA
  • Копировать диапазон ячеек в почтовый адрес
  • Копирование Вставка определенных ячеек Excel в автоматическую почтовую почту Outlook
  • Убить места в теле почты Outlook
  • VBA: выберите первую отфильтрованную ячейку, затем перейдите на следующую
  • Извлечение информации электронной почты Outlook в Excel со специфических дат vba
  • Ошибка отправки электронной почты (gmail) через python с вложением excel xlsx
  • Вставить содержимое ячеек в Outlook, поддерживая форматирование
  • Слияние с полем группового ключа из баз данных Excel или SQL
  • Добавить изображение в тело письма и подпись в Outlook через Excel-Vba
  • Ссылка в другой учетной записи
  • Давайте будем гением компьютера.