Макрос в Outlook

компьютеры VBA office outlook макрос

Есть макрос, который срабатывает на все новые письма, которые падают в корневую папку ящика (входящие), но у меня есть еще и вложенные папки, в которые с помощью правил перекидывается часть писем.
Так вот, проблема в том, что на данные письма уже не срабатывает макрос. Макрос запускает через эвент NewMail.
Вопрос в том, как сделать, чтобы обрабатывались все письма, в том числе и из вложенных папок

Примечание:
Привет Leo! Мучаю все тот же твой макрос. уже поднастроил под себя немного. сделал теперь вместо нового TASK у меня создается REMINDER именно для письма, а не отдельной задачей. но это ладно.
Касательно вопроса: макрос нужно применять к новым входящим письмам, которые правилом перекидываются в другую папку внутри моего ящика, причем папка третьего уровня получается, т.е. INBOX\папка1\папка2. Вот как бы мне в ней письма обработать? мне собственно только в ней и надо? может Event другой какой есть?

Примечание:
если это сложно, у меня есть вторая идея: в правиле отключить перемещение письма, а в макросе, после всех обработок, просто сделать move в нужную папку. только вот что-то с move пока не клеится... тыкаюсь уже час :)

Примечание:
к доп. 1 я видимо не полностью раскрыл твой вопрос: в данный момент письма из вложенных папок не обрабатываются, даже новые. макрос срабатывает на новые письма только в корневой папке INBOX

Примечание:
а уровень папки то оказался четвертым а не третьим :)
доработал скриптик:
Sub GetFolderID()
Dim i As Integer, j As Integer, z As Integer, y As Integer
For i = 1 To Application.Session.Folders.Count
For j = 1 To Application.Session.Folders(i).Folders.Count
For z = 1 To Application.Session.Folders(i).Folders(j).Folders.Count
For y = 1 To Application.Session.Folders(i).Folders(j).Folders(z).Folders.Count
Debug.Print
Debug.Print Application.Session.Folders(i).Name & "\" & Application.Session.Folders(i).Folders(j).Name & "\" & Application.Session.Folders(i).Folders(j).Folders(z).Name & "\" & Application.Session.Folders(i).Folders(j).Folders(z).Folders(y).Name; "; ";
Debug.Print "Set myFolder = Application.Session.Folders(" & i & ").Folders(" & j & ").Folders(" & z & ").Folders(" & y & ")"
Next
Next
Next
Next
End Sub

Вот этот результат меня интересовал:
Личные папки\Входящие\Заявки\к действию; Set myFolder = Application.Session.Folders(2).Folders(2).Folders(3).Folders(1)

Капаюсь дальше!

Примечание:
Спасибо большое! все вроде отрабатывает должным образом. Правда есть еще неуверенность по поводу Set myItem = myFolder.Items.GetLast - точно ли будет хвататься именно нужное письмо? а если их 2 сразу шлепнется, они поочереди нормально отработают?
Но это думаю практика покажет :)
Leo отпишись плиз в этой теме http://otvety.google.ru/otvety/thread?tid=3b2f72159c118bcd&hl=ru

Огромный респект!
Ответы:
Первый вариант: если все правила перебрасывают в одну и ту же папку то тогда нужно просто указать номер этой папки вот в этой строке:
Например тебе нужно обратиться к папке INBOX\папка1\папка2:
Вариант второй, предложенный тобой: в правиле отключить перемещение письма, а в макросе, после всех обработок, просто сделать move в нужную папку.
Для определения как сослаться на объект папки используй лучше вот этот код:
Sub GetFolderID()
   Dim i As Integer, j As Integer, z As Integer
   For i = 1 To Application.Session.Folders.Count
       For j = 1 To Application.Session.Folders(i).Folders.Count
           For z = 1 To Application.Session.Folders(i).Folders(j).Folders.Count
               Debug.Print Application.Session.Folders(i).Name & "\" & Application.Session.Folders(i).Folders(j).Name & "\" & Application.Session.Folders(i).Folders(j).Folders(z).Name & "; ";
               Debug.Print "Set myFolder = Application.Session.Folders(" & i & ").Folders(" & j & ").Folders(" & z & ")"
           Next
       Next
   Next
End Sub
По хорошему событие NewMail должно возникать для каждого нового письма. Но если вдруг не будет работать - пиши. Думаю можно и эту проблему решить, например просматривая все непрочитанные сообщения в нужной папке.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.