Outlook 2013에서 폴더를 참조하는 VBA 구문은 무엇입니까?


1

내 기본 폴더 (받은 편지함, 보낸 편지함)와 같은 수준에있는 내 '보관함'폴더로 항목을 옮길 때 항목을 읽음으로 표시하는 코드 작업 중. 아래 코드는 기본 삭제 된 항목 폴더를 사용하여 초기 테스트했습니다. 내 보관 폴더의 항목을 참조 할 수 있도록 올바른 구문은 무엇입니까?

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
너는 바꿀거야. olFolderDeletedItems 대신 현재 폴더에 대한 참조를 사용하는 변수를 만듭니다. 그러나 폴더가 실제 폴더가 아니면 GetDefaultFolder를 사용할 수 없습니다. 기본 폴더 귀하의 사용자가 생성되었습니다. Archive 디렉토리가 없습니다.
Ramhound

1
을보세요 Folders 수집 문서 : msdn.microsoft.com/en-us/library/office/...
Yorik

@Ramhound - 내 보관 폴더가 olFolderInbox와 같은 레벨에 있다면 여전히 .Folders ( "보관")에서 참조해야합니까?
Gryphoenix

@ 릭 감사합니다. 제공된 예제가 하위 폴더를 참조합니까?
Gryphoenix

나는 그것을 사용하지 않았지만, 현재 폴더 나 네임 스페이스 ( "루트 폴더")를 설정 한 다음, Folders 자식 폴더를 참조하는 컬렉션입니다. 또한 자식 폴더의 이름을 아는 경우 숫자 인덱스를 식별 할 필요없이 문자열 리터럴로 사용할 수 있습니다. foreach의 Name 속성을 방출 할 수 있습니다.
Yorik

답변:


1

Archive 폴더를 참조하는 방법을 알아 내려고 시도하지 않고 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.