5

オンラインで見つけたスクリプトを編集して、電子メールをさまざまなフォルダーに移動しました。

さらに一歩進んで、メールを別の PST ファイル内のフォルダーに移動したいと考えています。

これは Outlook 2007 で実行されます。

マクロは、「更新済み」というタイトルのこのマクロに由来し、よりクリーンなバージョンです:
http://jmerrell.com/2011/05/21/outlook-macros-move-email

このリンクに手がかりがあるとほぼ確信していますが、適切に適用する経験がありません:
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
4

3 に答える 3

0

上記のコードでコメントアウトされたこの形式を試してください。

Sub MoveToFolderInPST(targetFolder)
    '...
    Set MoveToFolderInPST = ns.Folders("name of pst").Folders("Inbox").Folders(targetFolder)
于 2013-11-01T09:52:29.753 に答える