Я использую Outlook 2013. По умолчанию он группируется на основе полученной даты Сегодня, вчера, дней недели, прошлой недели, которая действительно включает все предыдущие.

Затем полученный столбец показывает формат м / дд / гггг чч: мм AM / PM. Моя проблема в том, что с датой слишком много информации, чтобы отображаться практически при включенной панели чтения.

Изменение формата полученного столбца / поля изменяет его как для группировки, так и для табличного представления.

Мои извинения, как я думаю, корень моей неспособности понять это номенклатура. Поэтому, пожалуйста, держись со мной.

Я собираюсь сгруппировать по дате и отобразить время в сетке / таблице. Если бы я мог отметить, что сегодня, вчера и, возможно, день недели для группировки, было бы идеально, но я подозреваю, что для этого потребуется нечто большее, чем просто посмотреть на сообщение, в котором, как я подозреваю, находится время этой работы.

Я думаю, что нужно сделать, это создать дополнительное поле для группирования, потому что мне нужно убрать время, иначе это приведет к группировке по дате и времени, что почти всегда будет моим сообщением и, следовательно, бесполезным.

Где я в недоумении, как мне заполнить дополнительное поле? Я предполагаю, что это должен быть VBA, но я в полной растерянности относительно того, как добавить код и какое событие можно использовать, предполагая, что я могу сделать событие уровня приложения / mailitem полученный / mailitem добавленным в коллекцию. Мне достаточно указывать на событие и задействованные объекты, я в целом справился с VBA, но борюсь с объектной моделью / событиями Outlook для этой области.

Для полноты, шаги, я думаю, я понимаю ..

Добавление дополнительного поля: просмотр ленты, просмотр настроек, кнопка «Столбцы», «Новый столбец» -> соответствующие параметры - либо дата / время с соответствующим форматированием, либо текст, а также заполнение в формате даты ISO (гггг-мм-дд) для поддержания порядка сортировки ,

Группировка будет находиться под кнопкой «Группировать по» в том месте, где находится кнопка «Столбцы».

РЕДАКТИРОВАТЬ: я сделал код работает более или менее. Есть несколько оставшихся проблем.

'Code sample from stack overflow with enhancements
'Revised With typo correcton - works, sort of
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
End Sub

Private Sub Items_ItemAdd(ByVal item As Object)

  On Error GoTo ErrorHandler
  Dim dtReceived As Date
  Dim Msg As Outlook.MailItem
  Dim objProp As Outlook.UserProperty
  If TypeName(item) = "MailItem" Then
    Set Msg = item

        'My Code
    dtReceived = Msg.ReceivedTime
    'MsgBox "Date Received is" & dtReceived 'Yes it is running, an early diagnostic line removed
    Set objProp = item.UserProperties.Add("ReceivedDateOnly", olDateTime, True)
    objProp.Value = DateSerial(Year(dtReceived), Month(dtReceived), Day(dtReceived))
    Msg.Save 'Mailitem needs saved now that it has been updated
'Last of my original code

  End If
ProgramExit:
  Exit Sub
ErrorHandler:
  MsgBox Err.Number & " - " & Err.Description
  Resume ProgramExit
End Sub

Остальные вопросы:

  1. Код срабатывает только при получении сообщения и не обновляет сообщения, уже находящиеся в вашем OST/PST (вещи на вашем компьютере) - я обошел это, убив мой ost и позволив ему обработать все заново (потому что OST является локальной копией того, что включено Exchange Server, может быть не рекомендуется с PST) ... Не очень быстро, если у вас есть большое количество электронных писем, как у меня, потому что оно входит и модифицирует их после загрузки, а затем сохраняет изменения ... Это больше настороже для других, так как лодка отплыла для меня. Хорошей идеей было бы написать код для циклического перебора почтового ящика, отражающего процесс, но сейчас я этого не делаю.
  2. Кнопка "Форматировать столбцы" не влияет на поле, отображаемое в заголовке группы. Поскольку дата без времени фактически является полночью, первым моментом дня, она отображается как «ReceivedDateOnly: DDDD, MMMM DD, YYYY 12:00 AM: X элементов (ов) Y непрочитано». Хотя это огромное улучшение для меня, это не идеально. Если вам нужно указать это, чтобы показать поле группы, чтобы увидеть дату, любой, кто использует это, может захотеть рассмотреть пересмотренное более короткое имя поля.
  3. За исключением худшего для последнего, он работает только с объектами mailitem, то есть с обычными электронными письмами. Он ничего не делает с календарем в стиле "электронная почта" (приглашения на собрания). Затем при группировке пользовательское поле не изменяется при получении, и вместо отображения даты раздела отображается "Нет". Так как вы, очевидно, сортируете Descending, чтобы сначала показывать самые последние, это ставит его в конец списка.

За пределами этого последнего выпуска я терплю это и наслаждаюсь тем, что полученная дата является временем. Очевидно, мой код нуждается в улучшении для другого типа. Я знаю, с чем покопаться, чтобы исправить это, но пока я готовлю к сведению эту проблему и приветствую понимание или исправления любых проблем.

0