このページの関数を使用しようとしています: http://www.outlookcode.com/d/code/getfolder.htmフォルダー パスを使用してフォルダーに移動します。(そのコードをこの質問の一番下にコピーします。まったく変更せずにそのまま使用しました。)これを使用する必要がある理由は、Outlook のデフォルトの受信トレイが必要な受信トレイと同じではないためです。活動する。関連する受信トレイのパスは、右クリックしてプロパティをクリックし、場所を確認することでわかります。
これは私が使用するコードです:
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")
これにより、ランタイム エラー 91、オブジェクト変数または With ブロック変数が設定されていないが返されます。
これが何を意味するのかわかりません。このエラーを解決するのを手伝っていただければ、それは素晴らしいことです。また、この問題を完全に回避できる方法があれば、それも素晴らしいことです。ありがとう!
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