2008-10-12 4 views

답변

5

Outlook Redemption을 사용하면 RDOSession.Stores 속성을 통해 액세스 할 수있는 RDOStores 컬렉션을 사용하여 VBA에서 메시지 저장소를 반복 할 수 있습니다.

물론, PST의 경로는 STOREID 문자열 인코딩 :

나는

편집 ... 아웃 - 오브 - 박스 VBA에서 비슷한 일을의 가능성을 찾고 있습니다. 구글은 최대 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 

그냥 테스트가 작동합니다.

+0

이 코드는 Outlook Redemption을 사용할 필요없이 작동합니다. – Vic

+1

Redemption의 편리함은 저장소 항목 ID를 해킹 할 필요없이 명시 적으로 RDOPstStore.PstPath 속성 (http://www.dimastr.com/redemption/rdostore.htm#RDOPstStore)을 노출한다는 것입니다. –

0

경로가 있어야합니다 어딘가에서 :

어쩌면이 조금 도움이

[HKEY_CURRENT_USER \ SOFTWARE \ 마이크로 소프트 \ 윈도우 NT \ CurrentVersion을 \ Windows 메시징 서브 시스템 \ 프로필 \ 전망] .