既定のフォルダー (受信トレイ、送信済みなど) と同じレベルにある「アーカイブ」フォルダーにアイテムを移動したときに、そのアイテムを既読としてマークするコードを作成中です。以下のコードは、既定の削除済みアイテム フォルダーを使用した最初のテストです。アーカイブ フォルダー内のアイテムを参照するための適切な構文は何ですか?
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Set Ns = Application.GetNamespace("MAPI")
Set Items = Ns.GetDefaultFolder(olFolderDeletedItems).Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
Item.UnRead = False
Item.Save
End Sub
答え1
アーカイブ フォルダーを参照する方法を考えるよりも、PickFolder メソッドを呼び出す方が簡単であることがわかりました。これで、コードは正常に機能します。
Option Explicit
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim Ns As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Set Ns = Application.GetNamespace("MAPI")
Set myFolder = Ns.PickFolder
Set Items = myFolder.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
Item.UnRead = False
Item.Save
End Sub