Excel VBAを利用した「予約確認の自動メール送信」の方法と応用例

Excel VBAを使用することで、煩雑な業務の自動化やデータ処理が格段に効率化されることは広く知られています。特に「予約確認の自動メール送信」といった業務では、VBAの威力を存分に発揮できます。本記事では、Excel上での予約データを元に、自動でメール送信を行う方法について詳しく解説します。

目次

Excel VBAの基本

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

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

Excel VBAによる自動メール送信の基本

Excel VBAを利用して、予約データを元にメールを自動送信するためには、Outlookを使用するのが一般的です。以下はその基本的なコード例です。


Sub SendEmail()

    Dim olApp As Object
    Dim olMail As Object
    Dim ws As Worksheet
    Dim i As Integer

    Set ws = ThisWorkbook.Sheets("予約リスト")
    Set olApp = CreateObject("Outlook.Application")
    
    For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
        
        Set olMail = olApp.CreateItem(0)
        
        With olMail
            .To = ws.Cells(i, 3).Value
            .Subject = "予約の確認"
            .Body = ws.Cells(i, 4).Value
            .Send
        End With
        
    Next i
    
End Sub

コードの詳細解説

このコードは、Excelのシート「予約リスト」の予約データを参照し、指定されたメールアドレスへ予約の確認メールを送信するものです。

1. `Dim`で必要な変数を宣言します。
2. `ThisWorkbook.Sheets(“予約リスト”)`にて、「予約リスト」という名前のシートを指定します。
3. `CreateObject(“Outlook.Application”)`により、Outlookアプリケーションのインスタンスを生成します。
4. `For`ループで、予約リストの各行を走査します。
5. `.To`にはメールを送信する宛先、`.Subject`にはメールの件名、`.Body`にはメールの本文を指定します。
6. `.Send`メソッドで、メールを送信します。

応用例

1. 予約日が近い場合のみ送信

予約日が今日から3日以内のものだけを確認メールとして送信したい場合のコード例です。


If DateDiff("d", Date, ws.Cells(i, 2).Value) <= 3 Then
    '... (メール送信のコード)
End If

2. 送信済みの予約はスキップする

一度送信した予約には「送信済み」という印をつけ、再度送信しないようにする方法です。


If ws.Cells(i, 5).Value <> "送信済み" Then
    '... (メール送信のコード)
    ws.Cells(i, 5).Value = "送信済み"
End If

3. HTML形式でメール送信

メールの本文をHTML形式で装飾して送信する方法です。


With olMail
    .To = ws.Cells(i, 3).Value
    .Subject = "予約の確認"
    .HTMLBody = "<h2>予約の確認</h2><p>" & ws.Cells(i, 4).Value & "</p>"
    .Send
End With

まとめ

Excel VBAを活用することで、予約確認のメール送信を効率的に自動化することが可能です。日常業務において繰り返し行われる作業を自動化することで、作業の効率向上だけでなく、ヒューマンエラーのリスクも低減することができます。この知識を基に、更なる業務効率化を目指してみてください。

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

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

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

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

コメント

コメントする

目次