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
- Office 2013 - VBA Email не отображает переменные To / CC / BCC
- Как сохранить исходный формат ячейки в макросе Excel?
- Как экспортировать элемент почты в файл Excel
- PHP создает электронную таблицу Excel, а затем посылает ее по электронной почте в виде вложения
- Текстовое поле подсказки, которое будет сохранять форматирование Outlook
- Раскрывающийся список исчезает, когда рабочая книга отправляется по электронной почте.
- Форма PHP для Excel
- Создание вложения из листа Google в формате MS Excel через скрипт Google
- VBA проверяет список писем, используя шаблон
- Отправка с дополнительной учетной записи электронной почты в Outlook
- Вставка таблицы Excel в электронном письме Outlook: он оглядывается назад
- Не удалось получить Excel для создания электронной почты
- Excel VBA Отправить Email
Вы не можете использовать 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