0

このサイトで提供された優れた支援のおかげで、私は以下のコードを見つけました - これは完全に動作します. 恥ずかしいことに、受信トレイ全体をループしてすべてのメールを移動する方法を理解できません (以下のコードのように選択するのではなく)。

どんな支援も非常に感謝しています。
ジョン

Sub MoveWithRecDate()
' Moves selected emails with correct dates maintained

Dim objNS As Outlook.NameSpace
Dim Session As Redemption.RDOSession
Dim objRDOFolder As Redemption.RDOFolder
Dim objItem As Outlook.MailItem
Dim objRDOMail As Redemption.RDOMail

Set objNS = Application.GetNamespace("MAPI")
Set Session = CreateObject("Redemption.RDOSession")
Session.Logon
Set inbox = Session.GetDefaultFolder(olFolderInbox)
Set objRDOFolder = inbox.Parent.Folders("Cabinet")

For Each objItem In Application.ActiveExplorer.Selection
     Set objRDOMail = Session.GetMessageFromID(objItem.EntryID)
     objRDOMail.Move objRDOFolder
Next

End Sub
4

1 に答える 1

0

あなたの質問を読むまで、償還について聞いたことがありませんでした。とても面白そうですので、情報ありがとうございます。次回、新しい Outlook マクロを作成する必要があるときに試してみます。

あなたの質問に対する回答がないことから、Redempt を使用している人はほとんどいないと思います。

Redemption Web サイトは、Redemption コードの構造が標準の Outlook コードとほぼ同じであることを暗示しています。ユーザーが選択したアイテムを操作するマクロを書いたことは一度しか思い浮かびませんが、私の記憶では、コードはあなたのもののように見えました。以下のコードは標準的な Outlook ですが、同等の引き換えコードを作成するにはこれで十分だと思います。

あなたのマクロにはコメントがあり' Moves selected emails with correct dates maintainedます。これは、日付が維持されないようにメールを移動できる方法があると考えていることを意味します。私はそのような方法を知りません。

以下のコードは、受信トレイ内のすべてのアイテムを調べます。受信トレイからすべてを移動したくなかったので、メール アイテムではなく、特定の送信者からのものではないアイテムをスキップしました。

これで十分だと思います。

Sub MoveWithRecDate()

  Dim FolderDest As MAPIFolder
  Dim ItemToBeMoved As Boolean
  Dim ItemCrnt As Object
  Dim FolderSrc As MAPIFolder

  Set FolderSrc = CreateObject("Outlook.Application"). _
              GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
  Set FolderDest = FolderSrc.Parent.Folders("Cabinet")

  For Each ItemCrnt In FolderSrc.Items
    ItemToBeMoved = True   ' Assume item to be moved until discover otherwise
    With ItemCrnt
      If .Class = olMail Then
        If .SenderEmailAddress <> "noreply@which.co.uk" Then
          ' Mail item not from Which
          ItemToBeMoved = False
        End If
      Else
        ' Not mail item so do not move
        ItemToBeMoved = False
      End If
      If ItemToBeMoved Then
        .Move FolderDest
      End If
    End With
  Next

End Sub
于 2012-09-29T09:39:44.833 に答える