Excel VBAで「公式告知」メールを専用フォルダへ自動分類する方法

この記事では、Excel VBAを使用して、受信した「公式告知」というキーワードが含まれるメールを「公式告知」フォルダへ自動的に移動させる方法を詳しく解説します。初心者から中級者向けの具体的なコード例とその詳細な解説、さらに応用例を3つ以上提供します。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

VBAを使用したメールの自動分類

Excel VBAを活用することで、Outlook内のメールを自動的に特定のフォルダへ分類することができます。特に、大量のメールが届く業務においては、このような自動分類機能は大変役立ちます。

基本的なコード


Sub MoveOfficialAnnouncementEmails()

    Dim OutlookApp As Object
    Dim OutlookNamespace As Object
    Dim Inbox As Object
    Dim Email As Object
    Dim TargetFolder As Object

    Set OutlookApp = CreateObject("Outlook.Application")
    Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
    Set Inbox = OutlookNamespace.GetDefaultFolder(6)
    Set TargetFolder = Inbox.Folders("公式告知")

    For Each Email In Inbox.Items
        If InStr(1, Email.Subject, "公式告知", vbTextCompare) > 0 Then
            Email.Move TargetFolder
        End If
    Next Email

    Set Email = Nothing
    Set TargetFolder = Nothing
    Set Inbox = Nothing
    Set OutlookNamespace = Nothing
    Set OutlookApp = Nothing

End Sub

コードの詳細解説

上記のコードは、Outlookの受信トレイにある「公式告知」というキーワードを含むメールを「公式告知」フォルダへ移動するものです。

– `OutlookApp`, `OutlookNamespace`, `Inbox`などはOutlookのオブジェクトを操作するための変数です。
– `CreateObject(“Outlook.Application”)`はOutlookアプリケーションを起動します。
– `GetNamespace(“MAPI”)`はOutlookのメールの名前空間を取得します。
– `GetDefaultFolder(6)`は受信トレイを取得します。
– `Inbox.Folders(“公式告知”)`で「公式告知」フォルダを指定しています。
– `For Each…Next`ループを使用して、受信トレイのすべてのメールをチェックし、「公式告知」というキーワードがある場合、該当するメールを「公式告知」フォルダに移動します。

応用例

1. 特定の送信者からのメールを移動

ある特定の送信者からのメールだけを別のフォルダに移動する場合のコードです。


If Email.SenderEmailAddress = "sender@example.com" Then
    Email.Move TargetFolder
End If

2. メールの本文に特定のキーワードが含まれる場合に移動

メールの件名ではなく、本文に特定のキーワードが含まれる場合にメールを移動する方法です。


If InStr(1, Email.Body, "特定のキーワード", vbTextCompare) > 0 Then
    Email.Move TargetFolder
End If

3. メールの受信日時に基づいて移動

受信日時が特定の期間内である場合にメールを移動する方法です。


If Email.ReceivedTime >= DateValue("2023/01/01") And Email.ReceivedTime <= DateValue("2023/12/31") Then
    Email.Move TargetFolder
End If

まとめ

Excel VBAを使ってOutlookのメールを自動的に特定のフォルダに分類する方法を学びました。このテクニックは、日常のメール管理を効率化するための強力なツールとなるでしょう。応用例も参考にして、自分のニーズに合わせてカスタマイズしてみてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次