VBA Outlook : 빠르게 하위 폴더를 찾습니다


0

다음과 같은 구조를 Outlook Public Folders에 있습니다.

-Public Folders 
--1001_RandomProject 
--1002_AnotherProject 
--1003_Yetanotherproject 
... 

등, 기본적으로 천의 커플 (!) 거기에 각 프로젝트에 해당하는 프로젝트 번호로 시작 하위 폴더.

이제 사용자가 여러 메일 항목을 선택하고 Inputbox를 통해 프로젝트 번호를 입력 한 다음이 메일 항목을 프로젝트 번호에 해당하는 하위 폴더로 자동으로 이동할 수있는 매크로를 만들려고합니다.

이 모든 것은 작동하지만 현재 구현에서 공용 폴더의 모든 하위 폴더를 반복하고 입력 한 프로젝트 번호를 폴더 이름의 처음 4 자와 비교하여 일치하는지 확인한 다음 메일 항목을 폴더로 이동하십시오.

수천 개의 하위 폴더로 상상할 수있는 것처럼 아주 천천히 진행되는 경향이 있습니다. 그래서 내 질문은 : 그들 모두를 통해 루핑없이 올바른 폴더를 선택하는 또 다른 방법입니다 ('1001 *로 시작하는 폴더 찾기'와 같은 마스크 사용).

Folder.Folders 컬렉션을 통해 반복은 "폴더를 찾아"코드

Sub verplaatsen() 

Dim Boodschap, Titel, Standaard 
Dim ProjectNumber As String 
Dim NrOfFolders as Integer 
Dim objOutlook As Outlook.Application 
Dim objNamespace As Outlook.NameSpace 
Dim FolderName as String 


Boodschap = "Enter project number" 
Titel = "Move mail" 
Standaard = "0000" 
ProjectNumber = InputBox(Boodschap, Titel, Standaard) 

Set objOutlook = Application 
Set objNamespace = objOutlook.GetNamespace("MAPI") 

NrOfFolders = objNamespace.Folders(3).Folders(12).Folders.Count 

I = 2 

Do 
    FolderName = objNamespace.Folders(3).Folders(12).Folders(I).Name 
    If Left(FolderName, 4) = ProjectNumber Then 
    Else 
     I = I + 1 
    End If 
Loop Until I = NrOfFolders Or Left(FolderName, 4) = ProjectNumber 

MoveMail (I) 

End Sub 
  0

코드를 제공해 주시겠습니까? 얼마나 좋은가를 모를 때, 다른 매크로가 당신보다 더 잘 수행하면 말하기 어렵습니다. ;) 17 jun. 162016-06-17 08:06:01

  0

코드가 추가되어 매우 거칠고 정리가 필요합니다 (예 : 폴더 색인이 조금 깨지기 쉽지 않지만 주요 문제는 물론 모든 하위 폴더의 루프입니다) 17 jun. 162016-06-17 08:42:05

1

의 단순화 된 부분은 이름으로 특정 폴더를 찾을 수있는 유일한 방법입니다. 유일한 대안은 NameSpace.GetFolderFromID를 사용할 수 있도록 폴더 이름 및 Folder.EntryID 매핑의 색인을 유지하는 것입니다.