Excel VBAを使用したサポート・ヘルプデスクからのメール自動整理法

この記事では、Excel VBAを使用して、サポートやヘルプデスクからのメールを「サポート」フォルダへ自動的に移動する方法について説明します。実用的なコード例を交えながら、コードの詳細な解説と、その応用例を3つご紹介します。

目次

Excel VBAの基本

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

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

基本的なコードの概要


Sub MoveSupportMails()
    Dim OutlookApp As Object
    Dim Namespace As Object
    Dim Inbox As Object
    Dim i As Integer
    Dim TargetFolder As Object
    
    Set OutlookApp = CreateObject("Outlook.Application")
    Set Namespace = OutlookApp.GetNamespace("MAPI")
    Set Inbox = Namespace.GetDefaultFolder(6) ' 6 = olFolderInbox
    Set TargetFolder = Inbox.Folders("サポート")

    For i = Inbox.Items.Count To 1 Step -1
        If InStr(1, Inbox.Items(i).Subject, "サポート") > 0 Or _
           InStr(1, Inbox.Items(i).Subject, "ヘルプデスク") > 0 Then
            Inbox.Items(i).Move TargetFolder
        End If
    Next i
End Sub

コードの詳細解説

このコードは、Outlookのメールボックス内のメールを対象とし、件名に「サポート」または「ヘルプデスク」という文字列が含まれている場合、該当のメールを「サポート」フォルダに移動するものです。

補足事項

– 「サポート」フォルダは、事前にOutlookの受信トレイ内に作成しておく必要があります。
– このコードは、件名を基にメールをフィルタリングします。そのため、他のキーワードもフィルタリングの対象としたい場合は、コードを追加・変更する必要があります。

応用例

1. キーワードを外部のテキストファイルから読み込む

外部のテキストファイル(例: keywords.txt)からキーワードを読み込んで、それを基にメールの整理を行うことができます。これにより、キーワードを追加・変更したい場合、VBAのコードを変更することなく、テキストファイルのみを編集することで対応可能となります。


Sub MoveMailsByExternalKeywords()
    ' 上記の基本的なコードの一部を変更
    ' ...
    Dim Keywords As String
    Keywords = LoadKeywordsFromFile("C:\path\to\keywords.txt")
    If InStr(1, Inbox.Items(i).Subject, Keywords) > 0 Then
        Inbox.Items(i).Move TargetFolder
    End If
    ' ...
End Sub

2. 複数のフォルダに分類

例えば、「サポート」と「ヘルプデスク」の2つのキーワードに対して、それぞれ異なるフォルダにメールを移動するといった整理も可能です。


Sub MoveMailsToMultipleFolders()
    ' 上記の基本的なコードの一部を変更
    ' ...
    If InStr(1, Inbox.Items(i).Subject, "サポート") > 0 Then
        Inbox.Items(i).Move Inbox.Folders("サポート")
    ElseIf InStr(1, Inbox.Items(i).Subject, "ヘルプデスク") > 0 Then
        Inbox.Items(i).Move Inbox.Folders("ヘルプデスク")
    End If
    ' ...
End Sub

3. メールの送信者による分類

メールの送信者のアドレスや名前を基に、メールの整理を行うこともできます。


Sub MoveMailsBySender()
    ' 上記の基本的なコードの一部を変更
    ' ...
    If InStr(1, Inbox.Items(i).SenderName, "サポート") > 0 Or _
       InStr(1, Inbox.Items(i).SenderEmailAddress, "support@example.com") > 0 Then
        Inbox.Items(i).Move TargetFolder
    End If
    ' ...
End Sub

まとめ

Excel VBAを使用することで、Outlookのメール整理を自動化することが可能となります。今回紹介した基本的なコードや応用例を参考に、効率的なメール整理のためのカスタマイズを行いましょう。

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

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

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

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

コメント

コメントする

目次