web-dev-qa-db-ja.com

特定の送信メッセージを別のフォルダにコピーするOutlook2007ルールがあります-これらのメッセージを自動的に「既読」としてマークするにはどうすればよいですか?

メッセージは他のフォルダに正常にコピーされますが、未読として表示されます。

「既読にする」は、受信メッセージに適用されるルールを作成するときにアクションリストにフィルターオプションとして表示されますが、[〜#〜]送信[ 〜#〜]メッセージ。どうすればこれを達成できますか?

これが私の既存のルール記述文字列の全文です:

Apply this rule after I send the message
on this machine only
move a copy to the Archive folder

更新:
@ xxl3wwは、これを実現できるVBスクリプトが世の中にあることを指摘しています。ただし、これらのいずれかにお金を払う必要はありません。知っていますか?

7
arathorn

次のコードを機能させるには、マクロを有効にする必要があります。 [ツール]> [マクロ]> [セキュリティ]で、[すべてのマクロの警告]または[セキュリティチェックなし]に変更します

[ツール]> [マクロ]> [Visual BasicEditor]をクリックします

以下をコピーして貼り付けます。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Item.UnRead = False
End Sub

それでおしまい! (既存のメッセージルールとともに)

4
subman

ルールウィザード(ツール->ルールとアラート)を使用してルールを作成します。3番目の画面では、メッセージを既読としてマークできます。正しいチェックボックスを見つけるには、少し下にスクロールする必要があるかもしれません。

これは技術的には「送信」ルールではありませんが、手動で実行すると機能します。自動的にチェックを行う方法はオフィスに組み込まれているとは思いません。

0
NickSentowski

フォルダ/メールボックスの名前と一致するようにこれを微調整する必要がありますが、これにより、新しく追加されたアイテム(つまり、ルールによって移動された電子メール)が次のように設定されます。


Option Explicit
'##############################################
'### all code for the ThisOutlookSession module
'### Module level Declarations
'expose the items in the target folder to events
Dim WithEvents TargetFolderItems As Items

'###############################################
Private Sub Application_Startup()
'some startup code to set our "event-sensitive"
'items collection

Dim myMailbox As String, myFolder As String

'You need to set these
myMailbox = "Mailbox - My Name"
myFolder = "Archive Folder Name"

Dim ns As Outlook.NameSpace

Set ns = Application.GetNamespace("MAPI")
Set TargetFolderItems = ns.Folders(myMailbox).Folders(myFolder).Items

End Sub

'#################################################
'### this is the ItemAdd event code
Sub TargetFolderItems_ItemAdd(ByVal Item As Object)
'when a new item is added to our "Testing Folder"
'we can process it
Dim myEmail As MailItem
Set myEmail = Item
myEmail.UnRead = False
End Sub

'#################################################
Private Sub Application_Quit()

Dim ns As Outlook.NameSpace
Set TargetFolderItems = Nothing
Set ns = Nothing

End Sub
0
FoleyIsGood