2013-11-01 4 views
3

온라인으로 찾은 스크립트를 편집하여 전자 메일을 여러 폴더로 이동했습니다.전자 메일을 다른 데이터/PST 파일로 이동

이메일을 별도의 PST 파일 내에있는 폴더로 이동하려면 한 걸음 더 가고 싶습니다.
http://jmerrell.com/2011/05/21/outlook-macros-move-email

나는이 링크를 보유하고 거의 확신이의 Outlook 2007

매크로는 "업데이트"와 청소기 버전이라는 제목이 매크로에서 유래에서 실행됩니다

단서,하지만 난 그것을 제대로 적용 경험이없는 :
http://www.slipstick.com/developer/working-vba-nondefault-outlook-folders/

나의 현재 매크로 이메일 주요 PST "받은 편지함"배에서 3 개 개의 폴더 위치로 이동 될 수 있습니다 어.

'Outlook VB Macro to move selected mail item(s) to a target folder 
Sub MoveToFolder(targetFolder) 
On Error Resume Next 

Dim ns As Outlook.NameSpace 
Dim MoveToFolder As Outlook.MAPIFolder 
Dim objItem As Outlook.MailItem 

Set ns = Application.GetNamespace("MAPI") 

'define path to the target folder; the following assumes the target folder 
'is a sub-folder of the main Mailbox folder 

'This is the original' 
'Set MoveToFolder = ns.Folders("Mailbox").Folders(targetFolder)' 
Set MoveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders(targetFolder) 


If Application.ActiveExplorer.Selection.Count = 0 Then 
    MsgBox ("No item selected") 
    Exit Sub 
End If 

If MoveToFolder Is Nothing Then 
    MsgBox "Target folder not found!", vbOKOnly + vbExclamation, "Move Macro Error" 
End If 

For Each objItem In Application.ActiveExplorer.Selection 
    If MoveToFolder.DefaultItemType = olMailItem Then 
     If objItem.Class = olMail Then 
      objItem.Move MoveToFolder 
     End If 
    End If 
Next 

Set objItem = Nothing 
Set MoveToFolder = Nothing 
Set ns = Nothing 

End Sub 

Sub MoveToActive() 
MoveToFolder ("Active") 
End Sub 

Sub MoveToAction() 
MoveToFolder ("Action") 
End Sub 

Sub MoveToOnHold() 
MoveToFolder ("OnHold") 
End Sub 

는 어떻게 다른 PST 내에서 폴더로 이메일을 이동하는 4 옵션을 구성합니까?

예를 들어 "보관함"이라는 추가 버튼을 추가하고 싶습니다.이 특정 버튼을 클릭하면 별도의 PST의받은 편지함에있는 보관 폴더로 이동합니다.

Sub MoveToArchive() 
MoveToFolder ("Archive") 
End Sub 

답변

0

위의 코드에서이 형식을 사용해보십시오.

Sub MoveToFolderInPST(targetFolder) 
    '... 
    Set MoveToFolderInPST = ns.Folders("name of pst").Folders("Inbox").Folders(targetFolder) 
+0

지금까지 도움을 주셔서 감사합니다. 실례지만,이 코드를 어디에 배치 할 것인지, 그리고 코드의 다른 부분을 대체해야하는지 정확히 이해할 수 있도록 도와 줄 수 있습니까? 몇 가지 다른 시나리오를 시도하고 클릭하면 아무것도 안합니다. "archive.pst"에서와 같이 "pst의 이름"은 전체 이름이어야하며, "받은 편지함"폴더 내에있는 보조 폴더로 이동하려면이 방법을 이해하는 데 도움이 될 수 있습니다 ? 필자의 목표는 기존 Data PST 내에서 기존 버튼을 그대로 유지 한 다음 아카이브 용 버튼을 추가하는 것입니다. 도움을 주셔서 감사합니다. – CodeVar

+0

제거시 다음 오류 재개. 전체 코드를 복사하여 MoveToFolder의 모든 인스턴스를 MoveToFolderInPST로 대체합니다. pst의 이름은 탐색 창에 표시됩니다. Sub MoveToArchive() MoveToFolderInPST ("Archive") End Sub – niton