neversaymoo
@neversaymoo

Есть ли возможность создать VBA макрос для OUTLOOK с условием по времени и дню недели?

Добрый день!
В MS Outlook, к сожалению, нет возможности создать правило с временным условием.
К примеру, нужно переслать письма, полученные с 7 вечера до 8 утра, но, в то же время, действие должно выполняться для всех писем круглые сутки в выходные (с 7 вечера пятницы до 8 утра понедельника).

В интернете найдена возможность фильтрации по времени при помощи макроса:
Public WithEvents myOlItems As Outlook.Items
 Public Sub Application_Startup()
    Set myOlItems = Outlook.Session.GetDefaultFolder(olFolderInbox).Items
 End Sub
 Private Sub myOlItems_ItemAdd(ByVal Item As Object)
    If Time() < #8:00:00 AM# Or Time() > #7:00:00 PM# Then
       If TypeName(Item) = "MailItem" Then
          Set myForward = Item.Forward
          myForward.Recipients.Add "support@domen.ru"
          myForward.Send
       End If
    End If
 End Sub


Есть ли возможность прикрутить к нему условие с учетом выходных (отмечено курсивом)?
  • Вопрос задан
  • 944 просмотра
Решения вопроса 1
neversaymoo
@neversaymoo Автор вопроса
Допилил своими силами.
Если кому интересно:
Public WithEvents myOlItems As Outlook.Items
 Public Sub Application_Startup()
    Set myOlItems = Outlook.Session.GetDefaultFolder(olFolderInbox).Items
 End Sub
 Private Sub myOlItems_ItemAdd(ByVal Item As Object)
    If (WeekDay(checkindate) = 1 or 7) or (Time() < #9:00:00 AM# Or Time() > #5:00:00 PM#) Then
       If TypeName(Item) = "MailItem" Then
          Set myForward = Item.Forward
          myForward.Recipients.Add "support@domen.ru"
          myForward.Send
       End If
    End If
 End Sub
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы