Outlook 2013 でフォルダーを参照するための VBA 構文は何ですか?

Outlook 2013 でフォルダーを参照するための VBA 構文は何ですか?

既定のフォルダー (受信トレイ、送信済みなど) と同じレベルにある「アーカイブ」フォルダーにアイテムを移動したときに、そのアイテムを既読としてマークするコードを作成中です。以下のコードは、既定の削除済みアイテム フォルダーを使用した最初のテストです。アーカイブ フォルダー内のアイテムを参照するための適切な構文は何ですか?

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

関連情報