Estou usando o Outlook 2013. Por padrão, ele agrupa com base na data de hoje, ontem, dias da semana, na semana passada, que realmente inclui tudo antes.
Em seguida, a coluna recebida mostra o formato m / dd / aaaa hh: mm AM / PM. Meu problema é que, com a data, há muita informação a ser mostrada praticamente no painel de leitura.
A alteração do formato da coluna / campo recebido altera-o para agrupamento e exibição de tabela.
Minhas desculpas porque acho que a raiz da minha incapacidade de descobrir isso é a nomenclatura. Então, por favor, descubra comigo.
O que eu estou procurando é agrupar pela data e exibir a hora na grade / tabela. Se eu pudesse notar o que é hoje, ontem e talvez dia da semana para agrupar isso seria ideal, mas eu suspeito que isso exigiria mais do que olhar para a mensagem quando chega, na qual eu suspeito que seja o tempo de trabalho.
O que eu acho que precisa ser feito é criar um campo adicional para fins de agrupamento, porque eu preciso retirar o tempo, caso contrário, ele acaba agrupando em data e hora que quase sempre será minha mensagem e, portanto, inútil.
Onde estou em uma perda é, como eu preenche o campo adicional? Eu suponho que ele precisa ser VBA, mas estou em uma perda total de como adicionar o código e que evento poderia ser usado supondo que eu possa fazer um evento de nível de aplicativo / mailitem recebido / mailitem adicionado à coleção. Realmente apontando para o evento e objetos envolvidos devem ser o suficiente para eu fazer isso, eu sou realizado com o VBA em geral, mas lutando com o modelo de objeto / eventos do Outlook para esta área.
Para completar, os passos que eu acho que entendo ..
Adicionar campo adicional seria, exibir faixa de opções, exibir configurações, botão de colunas, Nova coluna - > seleções apropriadas - data / hora com formatação ou texto apropriado e confiança em preencher com o formato de data ISO (aaaa-mm-dd) para manter a ordem de classificação.
O agrupamento estaria sob o botão Agrupar por no local em que o botão de colunas está.
EDITAR: Eu fiz o código funcionar mais ou menos. Existem alguns problemas restantes.
'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
Edições restantes:
Fora desse último problema, estou tolerando isso e aproveitando para ver a data de recebimento como tempo. Claramente, meu código precisa ser aprimorado para o outro tipo. Eu sei o que cavar com para corrigi-lo, mas estou tabelando o problema por enquanto e bem-vindo insight ou correções para qualquer um dos problemas.