OutlookVBAを使用して特定の送信済み電子メールを特定のフォルダーに自動保存する方法

今すぐ共有:

既定では、Outlookは送信された電子メールを「送信済みアイテム」フォルダーに保存します。 特定の送信済みメールをデフォルトのフォルダーに保存したくない場合は、この記事で紹介した方法を使用できます。

一部のユーザーは、送信済みの電子メールをデフォルトの「送信済みアイテム」フォルダーに保存するのではなく、指定したフォルダーに自動的に保存したいと考えています。 したがって、多くの場合、次のスクリーンショットに示すように、「指定したフォルダーにコピーを移動する」という同様のアクションを提供するOutlookルールを使用します。 ただし、実際には、元の送信メールは「送信済みアイテム」フォルダに保存されます。 送信された電子メールのコピーのみが指定されたフォルダーに移動されます。 どうやら、この機能は本当のニーズを満たすことができません。指定したフォルダにコピーを自動移動するルールを作成する

もちろん、ユーザーはデフォルト以外のフォルダーを手動で指定して、送信された電子メールを保存できます。 「オプション」タブに移動し、「送信済みアイテムの保存先」>「その他のフォルダ」をクリックするだけです。 ただし、ユーザーは毎回手動でフォルダを指定する必要があるため、このアプローチは面倒です。送信済みアイテムを他のフォルダに手動で保存する

上記の両方の手段が効率的ではないので、Outlook VBAに繰り返してみませんか? 特定の送信メールを特定のフォルダに自動保存するための具体的なコードと手順は次のとおりです。

特定の送信済みメールを特定のフォルダに自動保存

  1. まず、Outlookアプリケーションを起動してください。
  2. 次に、「Alt + F11」キーボタンを押す必要があります。これは、VBAエディタウィンドウにアクセスするのに役立ちます。
  3. ポップアップの「MicrosoftVisualBasic for Applications」ウィンドウで、左側にある「ThisOutlookSession」プロジェクトを見つけてダブルクリックできます。
  4. 次に、開いている「ThisOutlookSession」プロジェクトウィンドウで、次のVBAコードをコピーする必要があります。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim SentFolder As Folder
    Dim desFolder As Folder
 
    If TypeName(Item) = "MailItem" And Item.DeleteAfterSubmit = False Then
       'Specify the sent emails
       If InStr(Item.To, "shirley") > 0 Or InStr(LCase(Item.Subject), "test") > 0 Then
          'Specify the folder for saving the sent emails
          'You can change it as per your needs
          Set SentFolder = Application.Session.GetDefaultFolder(olFolderSentMail)
          Set desFolder = SentFolder.Folders("Test")
          Set Item.SaveSentMessageFolder = desFolder
       End If
    End If
End Sub

VBAコード-特定の送信済みメールを特定のフォルダに自動保存

  1. その後、このコードに署名し、Outlookのマクロレベルを低く調整する必要があります。
  2. 最後に、現在のウィンドウを終了できます。 今後、特定の送信メールは、指定されたメールフォルダに自動的に保存されます。

追加のヒント:送信時に「フォルダの選択」ダイアログボックスを表示する

送信したメールを保存するためにメールフォルダを手動で選択したい人もいます。 ただし、常に「オプション」タブに移動してフォルダを選択するのは面倒です。 この場合、送信時にOutlookで[フォルダの選択]ダイアログボックスが自動的に表示されることを望んでいます。 この要件に対応して、別のVBAコードを次に示します。 「ThisOutlookSession」プロジェクトにコピーできます。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim desFolder As Folder
 
    If TypeName(Item) = "MailItem" And Item.DeleteAfterSubmit = False Then
       'specify the email
       If InStr(Item.To, "shirley") > 0 Or InStr(LCase(Item.Subject), "test") > 0 Then
          'Display the “Select Folder” dialog box
          Set desFolder = Application.Session.PickFolder
          Set Item.SaveSentMessageFolder = desFolder
       End If
    End If
End Sub

VBAコード-送信時に「フォルダの選択」ダイアログボックスを自動表示

これ以降、メールを終了して[送信済み]ボタンをクリックするたびに、下の画像のように[フォルダの選択]ダイアログボックスが自動的にポップアップ表示されます。 その時点で、現在送信されている電子メールを保存するフォルダーを指定できます。[フォルダの選択]ダイアログボックス

Outlookを修復する

Outlook はその多機能性で高く評価されています。しかし、その豊富な機能ゆえに Outlook は非常に脆弱です。また、悪意のあるメールは Outlook データに対する最も潜在的な脅威の 1 つです。したがって、Outlook を日常的に使用するユーザーは、優れた OutlookPSTメール修正ツール、のような DataNumen Outlook Repair。 これにより、さまざまなOutlookエラーをすばやく解決し、Outlookデータを適切に保護できます。

著者紹介:

Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 破損した修理 SQL Server MDF と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。