Outlook で編集中の新しいメールの下書きを削除する

Outlook で編集中の新しいメールの下書きを削除する

Outlook 2013 を使用しています。新しいメールを作成するときに、そのメールを送信する必要がなくなった場合に備えて、そのメールをすぐに削除する方法が通常あります。Outlook でこれを行う方法はありますか?

メッセージを閉じようとしましたが (保存/保持を求められても選択しませんでした)、削除済みアイテム フォルダーに新しい未読アイテムが作成され、クリスマス ツリーのように点灯してしまいます。その後、手動でそのフォルダーにアクセスして下書きをクリーンアップする必要があります。

Gmail のゴミ箱アイコンのようなものを探しています。 メッセージを一度で完全に削除できる、シンプルで手間のかからない方法です。 (念のため下書きを保存したい場合もありますが、ほとんどの場合はそうではありません。)

更新: 上部の「クイック アクセス ツールバー」に「削除」ボタンを表示できます。これにより、メッセージ項目が削除されます。これは、新しいメールを入力し始めたときに機能します。削除をクリックすると、必須の警告の後にメッセージが破棄されます。ただし、(!)、メールが自動保存されるとすぐに (しばらくしてから)、下書きフォルダーに移動します。この時点でメッセージを削除すると、メッセージは削除済みアイテムに移動されるだけなので、保持されます。

新しいメールを作成するときに、Outlook が Gmail のゴミ箱ボタンを模倣するようにする設定はありますか? これは非常に単純な使用例です。「書き始めたばかりのメールを送信したくない、気が変わった、削除したい、すべての痕跡を消去したい」。これは Microsoft 機能のもう 1 つの欠点ですか?

答え1

  1. 次のようなVBAスクリプトを書くことができます。破棄メッセージを既読にして削除することで削除されたアイテムその後、マクロを実行するボタンをメッセージ ウィンドウに配置します (リボンのカスタマイズ -> マクロを使用)。

このようなもの:

Sub Discard()
    On Error Resume Next
    Dim objItem As MailItem

    Set objInspector = ActiveInspector
    If Not objInspector Is Nothing Then
        Set objItem = objInspector.CurrentItem
        If Not objItem Is Nothing And Not objItem.Sent Then
            objItem.UnRead = False
            objItem.Delete
        End If
    End If
End Sub
  1. 無料クイック調整アドイン削除されたすべてのアイテムを自動的に既読としてマークできます。
  2. SHIFT+DELメッセージリスト内の選択されたメッセージを削除し、配置しない削除されたアイテム

答え2

削除済みフォルダーに追加されたアイテムを自動的に既読としてマークする方法を見つけました。このソリューションでは、マクロにリンクされたボタンを追加する必要はありません。

VBA エディターで「ThisOutlookSession」に次のコードを追加するだけです。

Private WithEvents deletedItems As Outlook.Items

Private Sub Application_Startup()
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")
    'Default folder for deleted items
    Set deletedItems = objNS.GetDefaultFolder(olFolderDeletedItems).Items
End Sub

Private Sub deletedItems_ItemAdd(ByVal Item As Object)
    Dim deletedEmail As Outlook.MailItem
    If TypeName(Item) = "MailItem" Then
        Set deletedEmail = Item
        deletedEmail.UnRead = False
    End If
End Sub

動作させるには Outlook を再起動する必要があります。

これは下書きだけでなく、削除されたすべてのメールに適用されることに注意してください。

答え3

現在のバージョンの Outlook では、ウィンドウの右端の中央に多数のアクション ボタンがあり、その中に破棄を表す赤い X があります。

Outlook のユーザー インターフェイスがかなりひどくて直感的ではないことには同意しますが、下書きメッセージを破棄するためだけにマクロを作成する必要はないはずです。

答え4

私が最終的に使用したバージョンには、削除後にメール アイテムを [削除済みアイテム] から削除するコードが含まれています。

Sub Discard()
    On Error Resume Next
    Dim objItem As MailItem

    Set objInspector = ActiveInspector
    If Not objInspector Is Nothing Then
        Set objItem = objInspector.CurrentItem
        If Not objItem Is Nothing And Not objItem.Sent Then
            'no EntryID exists for freshly created mail, but does for a draft
            MyEntryId = objItem.EntryID
            objItem.UnRead = False
            objItem.Delete
            If Not MyEntryId = "" Then
                Dim oDeletedItems As Outlook.Folder
                'Obtain a reference to deleted items folder
                Set oDeletedItems = Application.Session.GetDefaultFolder(olFolderDeletedItems)
                'Delete last item from Deleted Items
                oDeletedItems.Items.Item(oDeletedItems.Items.Count).Delete
            End If
        End If
    End If
End Sub

関連情報