Excel VBAで「確認待ち」フォルダにメールを自動移動させる方法

Excel VBAには多くの機能が組み込まれていますが、その中でも自動的に特定の条件に合致するメールを「確認待ち」フォルダに移動するような処理は、日常業務を大幅に効率化する手段として注目されています。この記事では、Excel VBAを利用して、特定の条件を持つメールを「確認待ち」フォルダに自動的に移動させる処理について解説します。具体的なコード例やその詳細な解説、さらにはその応用例も取り上げます。

目次

Excel VBAでのメールの移動処理

Excel VBAを使うことで、メールの自動整理が可能になります。特に「確認待ち」というフォルダに自動的にメールを移動させることは、業務の効率を大幅に上げることができます。


Sub MoveMailToCheckFolder()
    Dim OutlookApp As Object
    Dim OutlookNamespace As Object
    Dim Inbox As Object
    Dim CheckFolder As Object
    Dim Mail As Object
    
    'Outlookの起動
    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
    
    'メインの受信トレイと「確認待ち」フォルダを指定
    Set Inbox = OutlookNamespace.GetDefaultFolder(6)
    Set CheckFolder = Inbox.Folders("確認待ち")
    
    '受信トレイのメールをチェック
    For Each Mail In Inbox.Items
        '条件に合致するメールを「確認待ち」フォルダへ移動
        If Mail.Subject Like "*確認が必要*" Then
            Mail.Move CheckFolder
        End If
    Next Mail
End Sub

コードの詳細解説

このVBAスクリプトは、Outlookの受信トレイにあるメールをスキャンして、件名に「確認が必要」という文字列が含まれているものを「確認待ち」フォルダに移動します。

– **OutlookApp** : Outlookアプリケーションを表すオブジェクト
– **OutlookNamespace** : MAPIネームスペースを表すオブジェクト
– **Inbox** : 受信トレイを表すオブジェクト
– **CheckFolder** : 「確認待ち」というフォルダを表すオブジェクト
– **Mail** : メールアイテムを表すオブジェクト

応用例

VBAの強力な特性を利用して、上記の基本的な処理をさらに発展させることが可能です。

応用例1:特定の送信者からのメールを移動

特定の送信者からのメールだけを「確認待ち」フォルダに移動させる場合のコードです。


If Mail.SenderName = "特定の送信者" Then
    Mail.Move CheckFolder
End If

応用例2:メールの本文に特定のキーワードが含まれている場合に移動

メールの本文に「緊急」というキーワードが含まれている場合に「確認待ち」フォルダに移動させるコードです。


If InStr(1, Mail.Body, "緊急", vbTextCompare) > 0 Then
    Mail.Move CheckFolder
End If

応用例3:特定の日付以前のメールを移動

受信日が特定の日付以前のメールを「確認待ち」フォルダに移動させるコードです。


If Mail.ReceivedTime < DateValue("2023/01/01") Then
    Mail.Move CheckFolder
End If

まとめ

Excel VBAを使用してOutlookのメールを自動的に整理する方法について解説しました。日常の業務でメールの整理が困難に感じる方は、この方法を試してみることをおすすめします。さらなる効率化のための応用例も紹介しましたので、自身のニーズに合わせてカスタマイズしてみてください。

コメント

コメントする

目次