Excel VBAを使用して特定のキーワードを含むメールを「重要」フォルダに移動する方法

Excel VBAを活用することで、特定のキーワードを含むメールを自動的に「重要」フォルダに移動させる方法を紹介します。本記事では、基本的なVBAのコードの作成から、具体的な応用例までを詳しく解説していきます。

目次

Excel VBAの基本

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

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

基本的なVBAコードの作成

まず、特定のキーワードを含むメールを「重要」フォルダに移動させる基本的なVBAのコードを以下に示します。


Sub MoveImportantMails()
    Dim olApp As Object
    Dim olNamespace As Object
    Dim olFolder As Object
    Dim olMail As Object
    Dim i As Integer
    
    Set olApp = CreateObject("Outlook.Application")
    Set olNamespace = olApp.GetNamespace("MAPI")
    Set olFolder = olNamespace.GetDefaultFolder(6) '6 is the constant for Inbox
    
    For i = olFolder.Items.Count To 1 Step -1
        Set olMail = olFolder.Items(i)
        If InStr(olMail.Body, "重要") > 0 Then
            olMail.Move olNamespace.GetDefaultFolder(6).Folders("重要")
        End If
    Next i

    Set olMail = Nothing
    Set olFolder = Nothing
    Set olNamespace = Nothing
    Set olApp = Nothing
End Sub

コードの詳しい解説

上記のコードは、Outlookのメールボックスから「重要」というキーワードが含まれるメールを探し出し、それを「重要」という名前のフォルダに移動するものです。以下、コードの主要な部分の解説を行います。

1. **Outlookオブジェクトの初期化**: `CreateObject(“Outlook.Application”)`を使用してOutlookのアプリケーションオブジェクトを取得します。
2. **名前空間の取得**: `GetNamespace(“MAPI”)`を使用して、MAPI(Messaging Application Programming Interface)の名前空間を取得します。
3. **Inboxフォルダの取得**: `GetDefaultFolder(6)`の「6」はInboxフォルダを示す定数です。
4. **メールの検索**: `For`ループを使用して、Inbox内の全てのメールを一つずつ確認します。`InStr`関数を利用して、メールの本文に「重要」というキーワードが含まれているかどうかをチェックします。
5. **メールの移動**: キーワードが含まれるメールを、「重要」フォルダに移動させます。

応用例

1. 複数のキーワードに対応

特定のキーワードだけでなく、複数のキーワードを指定して、それに該当するメールを「重要」フォルダに移動させることもできます。


If InStr(olMail.Body, "重要") > 0 Or InStr(olMail.Body, "緊急") > 0 Then
    olMail.Move olNamespace.GetDefaultFolder(6).Folders("重要")
End If

2. 指定の人からのメールを移動

送信者のアドレスを条件として、特定の人からのメールを「重要」フォルダに移動することもできます。


If olMail.SenderEmailAddress = "example@example.com" Then
    olMail.Move olNamespace.GetDefaultFolder(6).Folders("重要")
End If

3. 日付指定でのメール移動

特定の期間に受信したメールを「重要」フォルダに移動することもできます。


If olMail.ReceivedTime >= Date - 7 Then '7 days ago
    olMail.Move olNamespace.GetDefaultFolder(6).Folders("重要")
End If

まとめ

Excel VBAを活用することで、特定の条件を満たすメールを効率的に「重要」フォルダに移動させることができます。基本のコードから応用例まで、様々なシチュエーションでのメールの自動整理を楽しんでください。

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

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

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

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

コメント

コメントする

目次