I am trying to use this function on this page: http://www.outlookcode.com/d/code/getfolder.htm to use the folder path to navigate to the folder. (I will copy this code at the bottom of this question - I used it as it was, not modified at all.) The reason I need to use this is because the default mailbox in Outlook does not match the inbox that I need to be active. I know the path to the corresponding mailbox by right-clicking on it, and hit the properties, and looked at the location.
This is the code I'm using:
Set objOutlook = CreateObject("Outlook.Application", "localhost") Set objNamespace = objOutlook.GetNamespace("MAPI") Set Inbox = GetFolder("\\ itadmin@email.org \inbox") Debug.Print Inbox '<-- This fails Set InboxItems = Inbox.Items '<-- This also fails InboxItems.SetColumns ("SentOn")
This returns a 91 runtime error, an object variable, or with a locked block variable.
I have no idea what that means. If you could help me solve this error, that would be awesome, and if you had a way so that I could completely avoid this problem, it would be awesome too. Thanks!
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
source share