6

Стандартные контрольные флаги: "Сегодня", "Завтра", "Эта неделя", "Следующая неделя" и "Без даты". Я хотел бы добавить еще один вариант в этот список для "Этот месяц".

В настоящее время я выполняю то же самое, используя опцию «Custom ...» и определяя дату начала / окончания, последний день текущего месяца. Это работает нормально, хотя это занимает больше времени, чем использование одного из предустановленных вариантов последующих действий. Однако, если выбрано более одного элемента, опция «Пользовательский ...» отключена, и я должен установить каждый из них отдельно. Это огромная трата времени!

Я посмотрел в настройках настройки Outlook и искал в Интернете способ добавить собственные контрольные флаги без какой-либо удачи. Есть идеи?

Обновление: решение, предоставленное Bogdan_Ch, также работает в Outlook 2010.

2 ответа2

3

Идея проста - написать свой собственный макрос VBA.

Вот код VBA, который будет выполнять эту работу (SetFollowupToMonthEndMacro - это макросы, которые можно связать с кнопкой или комбинацией горячих клавиш)

Sub SetFollowupToMonthEndMacro()

    Dim sel As Outlook.selection
    Set sel = Application.ActiveExplorer.selection

    Dim item As Object
    Dim i As Integer

    For i = 1 To sel.Count
         Set item = sel.item(i)
         If item.Class = olMail Then
                Dim mail As MailItem
                Set mail = item
                mail.MarkAsTask (olMarkNoDate)
                mail.TaskStartDate = SetLastDate(Now)
                mail.Save
         End If

    Next i


End Sub


Private Function SetLastDate(pDate As Date) As Date
 Dim iDay As Integer
 iDay = Day(pDate)
 Dim iLastDay As Integer
 Select Case Month(pDate)
  Case 1, 3, 5, 7, 8, 10, 12
   iLastDay = 31
  Case 4, 6, 9, 11
   iLastDay = 30
  Case 2
   If (Year(pDate) Mod 4) = 0 Then
    iLastDay = 29
   Else
    iLastDay = 28
   End If
 End Select

 SetLastDate = DateAdd("d", iLastDay - iDay, pDate)

End Function

Нет способа настроить это из настроек или как-то еще, без программирования на VBA, потому что, к сожалению, во внутренней Outlooks есть функция MailItem.MarkAsTask(MarkInterval) Параметр MarkInterval может иметь только одно из значений перечисления OlMarkInterval.

olMarkNoDate 4 Отметьте задачу как дату без даты. olMarkNextWeek 3 Отметьте задачу на следующей неделе. olMarkThisWeek 2 Отметьте задачу на этой неделе. olMarkToday 0 Отметьте задачу, которая должна быть выполнена сегодня. olMarkT завтра 1 Отметьте задачу, которая должна быть выполнена завтра.

Так что, если внутренняя функция имеет ограничение, UI, естественно, тоже будет иметь такое же ограничение.

0

В Outlook 2010 вы также можете выполнить это с помощью "Manage Quick Steps". Есть еще 2 действия, которых нет в стандартных последующих настройках: "Этот месяц" и "Следующий месяц".

Outlook-2010-быстродействующие шаги

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .