2016-08-10 151 views
0

在2007年後的Outlook版本中,Microsoft增加了手動排列文件夾樹中文件夾(在Outlook 2007文件夾按字母順序排列)中的可能性。 是否有可能使用VBA來排列文件夾樹中的文件夾,例如當文件夾包含新電子郵件時,將文件夾置於頂部? 謝謝Outlook 2013,Outlook 2016文件夾樹中的VBA重新排列文件夾

+0

我不擅長這個問題,但我認爲你應該專注於Outlook的資源管理器**導航窗格**的**郵件模塊**及其屬性。例如,請參閱http://stackoverflow.com/questions/12935579/outlook-add-folder-to-favorites-group。 – miroxlav

回答

0

從Outlook 2013開始,您可以重新排序文件夾,但是您喜歡並且Outlook會記住該順序。關鍵屬性是PR_SORT_POSITION。這裏的定義是:

定義PR_SORT_POSITION PROP_TAG(PT_BINARY,0x3020)

作爲其一部分的排序順序從供應商請求文件夾時,所以它是你的供應商可以處理是很重要的Outlook將使用該屬性在一個二進制屬性上進行排序 - 或者在被這個屬性請求排序時可以僞造它。當決定在可見樹中插入節點的位置時,Outlook也將直接使用此屬性,因此當Outlook在文件夾中查找它時,您的提供程序可以返回此屬性也很重要。

有第二個屬性Outlook將使用自定義排序順序:

定義PR_SORT_PARENTID PROP_TAG(PT_BINARY,0x3021)

正如其名稱所暗示的,這個屬性存儲條目ID可以是用於在與自然父節點不同的節點下排序文件夾。通常情況下,文件夾將被排序在PR_PARENT_ENTRYID所代表的文件夾下。此屬性允許您建議一個不同的父級顯示。

通過適當地預設這些屬性,您可以指導Outlook如何希望對提供者的文件夾進行排序。如果您允許Outlook寫入這些屬性,則可以保留用戶需要的任何排序順序。

因此,理論上你可以從VBA中設置這些屬性。 PropertyAccessor課程可以幫助你完成這些任務。如果您面臨OOM的任何限制,您也可以考慮使用低級代碼,因此擴展MAPI的任何包裝都可以彌補差距(例如,Redemption)。