Holen Sie sich MAPI-Ordner in Outlook aus dem Ordnerpfad
Ich versuche die Funktion auf dieser Seite zu nutzen:http://www.outlookcode.com/d/code/getfolder.htm Verwenden Sie den Ordnerpfad, um zu einem Ordner zu navigieren. (Ich werde diesen Code unten in diese Frage kopieren - ich habe ihn unverändert verwendet.) Der Grund, warum ich dies verwenden muss, ist, dass der Standardeingang in Outlook nicht mit dem Eingang identisch ist, den ich benötige aktiv sein. Ich kenne den Pfad des relevanten Posteingangs, indem ich mit der rechten Maustaste darauf klicke und Eigenschaften drücke und den Standort betrachte.
Dies ist der Code, den ich benutze:
Set objOutlook = CreateObject("Outlook.Application", "localhost")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set Inbox = GetFolder("\\[email protected]\inbox")
Debug.Print Inbox '<-- This fails
Set InboxItems = Inbox.Items '<-- This also fails
InboxItems.SetColumns ("SentOn")
Dies gibt den Laufzeitfehler 91 zurück, Objektvariable oder With block variable not set.
Ich habe keine Ahnung, was das bedeutet. Wenn Sie mir helfen könnten, diesen Fehler zu beheben, wäre das großartig, und wenn Sie eine Möglichkeit hätten, dieses Problem vollständig zu vermeiden, wäre das auch großartig. Vielen Dank!
Public Function GetFolder(strFolderPath As String)As MAPIFolder
' strFolderPath needs to be something like
' "Public Folders\All Public Folders\Company\Sales" or
' "Personal Folders\Inbox\My Folder"
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim colFolders As Outlook.Folders
Dim objFolder As Outlook.MAPIFolder
Dim arrFolders() As String
Dim I As Long
On Error Resume Next
strFolderPath = Replace(strFolderPath, "/", "\")
arrFolders() = Split(strFolderPath, "\")
Set objApp = Application
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.Folders.Item(arrFolders(0))
If Not objFolder Is Nothing Then
For I = 1 To UBound(arrFolders)
Set colFolders = objFolder.Folders
Set objFolder = Nothing
Set objFolder = colFolders.Item(arrFolders(I))
If objFolder Is Nothing Then
Exit For
End If
Next
End If
Set GetFolder = objFolder
Set colFolders = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Function