本記事では、ExcelのVBAを使用して、複数のメールを自動で作成・一括送信する方法をご紹介します。同じまたは似た内容のメールを別の宛先に複数送信したい場合など、複数のOutlookメールを作成・送信したい際に便利・活用できます。
- 宛先と本文だけを変えて、同じCc先及び件名で複数のメールを一括送信したい
- 機械的なメールの作成・送信を効率化したい
Excelのマクロ・VBAでOutlookのメールを作成・送信する方法
下記のコードでは、Excelのマクロ・VBAを使用してOutlookのメールを複数の宛先に一括で作成し送信することができます。前提として、A列に宛先、B列にCc先、C列に件名、D列に本文を入力しておいてください。
より詳細な解説は後のセクションで行います。
Sub SendEmailsFromExcel()
' Written by consulting-campus.site
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim ws As Worksheet
Dim LastRow As Long, i As Long
Set OutlookApp = CreateObject("Outlook.Application")
Set ws = ActiveSheet
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ws.Cells(i, 1).Value ' 宛先
.CC = ws.Cells(i, 2).Value ' Cc先
.Subject = ws.Cells(i, 3).Value ' 件名
.Body = ws.Cells(i, 4).Value ' 本文
.Display ' メールを表示
.Send ' メールを送信
End With
Set OutlookMail = Nothing
Next i
Set OutlookApp = Nothing
End Sub
マクロ・VBAでのOutlookメールを複数一括で作成・送信する方法の解説
マクロ・VBAでOutlookのメールを一括作成・送信するには、下記の2ステップで簡単に実現することができます。ここでは、自動で一括送信するニーズに対応できるように、入力した行数分の複数のメールを一度に処理するコード設計になっています。
- ステップ1
- ステップ2
マクロ・VBAでOutlookのメールを複数作成・送信するステップ
宛先・Cc先・件名・本文を用意したテーブルの作成
まず初めに、メールを送信するために必要な情報を格納したテーブルを作成します。A~D列以外は使用されないので、適宜サポート列を追加してください。(例: 各メールの本文で、={名前}&"様"
とするために使用しない列に名前を入力する、など)
- A列: 宛先のメールアドレス。複数存在する場合は
;
(セミコロン) で区切って入力してください - B列: Cc先のメールアドレス。複数存在する場合は
;
(セミコロン) で区切って入力してください - C列: メールの件名
- D列: メールの本文
完成イメージとしては下記のとおりです。何行入力しても構いませんが、間に空白行を入れないようにしてください。(上に詰めて入力してください)
マクロ・VBAの実行
次に、Outlookのメールを作成し、自動で一括送信するためのマクロ・VBAを実行します。マクロ・VBAを実行するステップは下記のとおりです。
今回貼り付けるコードは下記のとおりです。特に入力や調整が必要な箇所はありませんので、そのまま貼り付けて実行してください。
Sub SendEmailsFromExcel()
' Written by consulting-campus.site
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim ws As Worksheet
Dim LastRow As Long, i As Long
Set OutlookApp = CreateObject("Outlook.Application")
Set ws = ActiveSheet
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ws.Cells(i, 1).Value ' 宛先
.CC = ws.Cells(i, 2).Value ' Cc先
.Subject = ws.Cells(i, 3).Value ' 件名
.Body = ws.Cells(i, 4).Value ' 本文
.Display ' メールを表示
.Send ' メールを送信
End With
Set OutlookMail = Nothing
Next i
Set OutlookApp = Nothing
End Sub
おわりに
以上が、ExcelのVBA・マクロを使用して、Outlookのメールを作成し、自動で送信する方法の解説となります。
ご質問やご不明点がある場合はお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント