2008-10-12 12 views

Antwort

5

Mit Outlook Redemption können Sie die Nachrichtenspeicher in VBA mit der RDOStores Sammlung, die über die RDOSession.Stores-Eigenschaft zugänglich ist, iterieren.

Ich suche in der Möglichkeit, etwas Ähnliches in Out-of-the-box zu tun VBA ...

EDIT:

Offensichtlich ist der Pfad zu dem PST in der StoreID Zeichenfolge codiert. Google aufgedreht 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 

gerade getestet, wie vorgesehen funktioniert.

+0

Dieser Code funktioniert, ohne Outlook Redemption verwenden zu müssen. – Vic

+1

Der Vorteil von Redemption besteht darin, dass die RDOPstStore.PstPath-Eigenschaft (http://www.dimastr.com/redemption/rdostore.htm#RDOPstStore) explizit verfügbar gemacht wird, ohne die ID des Geschäftseintrags hacken zu müssen. –

0

sollte der Pfad irgendwo unter:

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

Vielleicht hilft ein wenig .