Страницы: 1
RSS
Запустить макрос если получен Email в папке Outlook, Outlook как запустить макрос если в папку под названием "Задачи" пришло письмо
 
Доброго времени суток, господа. Как у вас дела?

Появилась задача: Нужно чтобы когда в Outlook  приходило новое сообщение в папку под названием "Задачи" outlook запускал макрос. Нашел код в интернете, но как обычно не получается. поможете?  
 
Цитата
Anton_Kozlov написал:
Нашел код в интернете
а мы нет. Нам тоже сначала поискать, чтобы Вам хоть в чем-то помочь или Вы им поделится можете?
Цитата
Anton_Kozlov написал:
как обычно не получается
а что именно? Или это как и код макроса угадать надо?

Ну и самое главное: Excel-то здесь при чем?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Извиняюсь, забыл вставить.
Код
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
  Dim olApp As Outlook.Application
  Dim objNS As Outlook.NameSpace
  Set olApp = Outlook.Application
  Set objNS = olApp.GetNamespace("MAPI")
 ' default local Inbox
  Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
    Set Items = objNS.Folders("Задачи").Items
End Sub
Private Sub Items_ItemAdd(ByVal item As Object)

  On Error GoTo ErrorHandler
  Dim Msg As Outlook.MailItem
  If TypeName(item) = "MailItem" Then
    Set Msg = item
    ' ******************
    ' do something here
    MsgBox ("пришло письмо")
    ' ******************
  End If
ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub
Изменено: Anton_Kozlov - 26.01.2021 09:36:57
 
Трудно с Вами...Остальные вопросы я себе, что ли задавал? :) Что не получается? На чем спотыкаетесь? Ошибки какие-то, результат не тот, в папке не ищет и т.д. Поймите - не интересно сидеть и накидывать тут предположения вроде "а что вообще не получается-то?".
Если продолжим в том же духе - я мимо.
Изменено: Дмитрий(The_Prist) Щербаков - 26.01.2021 09:43:45
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Простите мне мою тупость! :sceptic:  :)  Я хотел чтобы при новом сообщении срабатывал код  msgbox("Пришло письмо"), Но не работает. Не выдает это окно. Но ни на что не жалуется

А excel это основная часть. После того как email придет нужно чтобы срабатывал макрос от excel.
Изменено: Anton_Kozlov - 26.01.2021 09:49:44
 
так откуда ексел узнает что письмо пришло?
это надо в аутлуке писать макрос обработки получения нового письма Там есть такое событие
Код
Private Sub Application_NewMail() ' при получении письма
И аутлук должен быть запущен
Изменено: Александр Моторин - 26.01.2021 10:45:20
 
Цитата
Anton_Kozlov написал: нужно чтобы срабатывал макрос от excel
во как. И как же он сработает? Вы будете из Outlook его запускать? Или все это хотите на стороне Excel сделать?
Куда помещаете приведенный выше код?

Кстати, сам код почти рабочий. единственное, я бы один момент изменил, если папка "Задачи" является вложенной в папку "Входящие". Вот так:
Код
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
  Dim olApp As Outlook.Application
  Dim objNS As Outlook.NameSpace
  Set olApp = Outlook.Application
  Set objNS = olApp.GetNamespace("MAPI")
 ' default local Inbox
    Set Items = objNS.GetDefaultFolder(olFolderInbox).Folders("Задачи").Items
End Sub
Private Sub Items_ItemAdd(ByVal item As Object)
 
  On Error GoTo ErrorHandler
  Dim Msg As Outlook.MailItem
  If TypeName(item) = "MailItem" Then
    Set Msg = item
    ' ******************
    ' do something here
    MsgBox ("пришло письмо")
    ' ******************
  End If
ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub
Если папка "Задачи" сама по себе - то этого можно не делать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Александр Моторин написал:
Application_NewMail
если мне не изменяет мой склероз, то это событие не отслеживает получение письма в конкретную папку. Это событие обрабатывает абсолютно все поступающие письма до того, как сработает какое-либо правило, например правило перемещения в определенную папку.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо вам большое! Все сработало! Я просто в настройках Outlook запретил использовать макросы. Поставил галочку чтобы разрешить и перезагрузил Outlook и все работает! Спасибо вам большое!!!
 
Дмитрий(The_Prist) Щербаков, у меня еще один вопрос. А как прописать путь папки, если она не находится во входящих
Код
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
Set Items = objNS.GetDefaultFolder("Задачи").Items 'можно сделать так? Точней я попробовал, но не работает
 
Цитата
Anton_Kozlov написал:
как прописать путь папки, если она не находится во входящих
Я выше в сообщении и коде именно это и показал
Цитата
Дмитрий(The_Prist) Щербаков написал:
единственное, я бы один момент изменил, если папка "Задачи" является вложенной в папку "Входящие". Вот так:
Если папка не во Входящих - то нужно заменять Inbox на нужную константу или имя. При этом возможно даже не GetDefaultFolder нужно будет использовать. Но т.к. информации мало(непонятно даже где эта папка, если не во Входящих - то ли как вложенная, то ли вообще не во Входящих), то расписывать здесь полный ликбез по обращению к папкам Outlook ни желания ни времени нет.
Изменено: Дмитрий(The_Prist) Щербаков - 27.01.2021 09:37:13
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Anton_Kozlov написал:
Я просто в настройках Outlook запретил использовать макросы.
напомнило
http://anekdotov.net/story/all/dtkkvnlzmtkmptr.htm
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх