2008-10-12 35 views

Trả lời

5

Với Outlook Redemption, bạn có thể lặp lại các cửa hàng tin nhắn trong VBA bằng cách sử dụng bộ sưu tập RDOStores, có thể truy cập thông qua thuộc tính RDOSession.Stores.

Tôi đang xem xét khả năng làm một cái gì đó tương tự trong out-of-the-box VBA ...

EDIT:

Rõ ràng, đường dẫn đến PST được mã hóa trong chuỗi StoreID. Google đã bật lên this:

Sub PstFiles() 
    Dim f As MAPIFolder 

    For Each f In Session.Folders 
    Debug.Print f.StoreID 
    Debug.Print GetPathFromStoreID(f.StoreID) 
    Next f 
End Sub 

Public Function GetPathFromStoreID(sStoreID As String) As String 
    On Error Resume Next 
    Dim i As Long 
    Dim lPos As Long 
    Dim sRes As String 

    For i = 1 To Len(sStoreID) Step 2 
    sRes = sRes & Chr("&h" & Mid$(sStoreID, i, 2)) 
    Next 

    sRes = Replace(sRes, Chr(0), vbNullString) 
    lPos = InStr(sRes, ":\") 

    If lPos Then 
    GetPathFromStoreID = Right$(sRes, (Len(sRes)) - (lPos - 2)) 
    End If 
End Function 

Vừa thử nghiệm, hoạt động như được thiết kế.

+0

Mã này hoạt động mà không phải sử dụng tính năng Lưu lại Outlook. – Vic

+1

Sự tiện lợi của Redemption là nó hiển thị rõ ràng thuộc tính RDOPstStore.PstPath (http://www.dimastr.com/redemption/rdostore.htm#RDOPstStore) mà không cần phải hack id của cửa hàng. –

0

Đường dẫn có thể trong ngưỡng dưới:

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows Messaging Subsystem \ Profiles \ Outlook]

Có lẽ điều này giúp một chút .

Các vấn đề liên quan