ビジネスでメールを一括送信する場面では、手作業で送信するのは非常に時間がかかります。このような場面で活躍するのが、ExcelとOutlookを連携させたマクロの活用です。しかし、どのようにマクロを作成し、使用すれば良いか分からない方も多いのではないでしょうか?
例えば、取引先に一括で案内メールを送る場合、宛先や本文を一つひとつ入力していると効率が悪く、ミスの原因にもなりかねません。
この記事では、ExcelでOutlookメールを一括送信するマクロの作成手順を具体的に解説します。これを学ぶことで、作業時間を短縮し、正確かつスピーディーにメールを送信できるようになります。
このマクロを使うと下記の画像のように一斉送信できるようになります。
Sheet1
Sheet2
マクロ実行後メールプレビュー
さっそく、具体的な手順をみていきましょう。
必要な準備
①Excelファイルを用意する
Sheet1↓
上記の画像を参考に同じように編集してください
Sheet2↓
1行目はヘッダーです。
本文と件名は2行目に入力してください。
②Outlookがインストールされていることを確認します。
③VBAを有効化し、マクロを実行できるようにします。
④下記のコードを標準モジュールに貼り付けてください。
Sub SendEmails()
Dim OutlookApp As Object
Dim MailItem As Object
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow As Long, i As Long
Dim companyName As String, personName As String, emailAddress As String
Dim emailSubject As String, emailBody As String
Dim senderCompany As String, senderName As String
' Set worksheets
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
' Get email subject and body from Sheet2
emailSubject = ws2.Range("A2").Value ' Assuming the subject is in A2
emailBody = ws2.Range("B2").Value ' Assuming the body is in B2
' Get sender information from Sheet1 cells C1 and D2
senderCompany = ws1.Range("C1").Value
senderName = ws1.Range("D2").Value
' Get the last row of data in Sheet1
lastRow = ws1.Cells(ws1.Rows.Count, "C").End(xlUp).Row
' Initialize Outlook application
On Error Resume Next
Set OutlookApp = CreateObject("Outlook.Application")
On Error GoTo 0
If OutlookApp Is Nothing Then
MsgBox "Outlook is not available.", vbExclamation
Exit Sub
End If
' Loop through each row in Sheet1 to send emails
For i = 2 To lastRow
companyName = ws1.Cells(i, 3).Value
personName = ws1.Cells(i, 4).Value
emailAddress = ws1.Cells(i, 5).Value
If emailAddress <> "" Then
' Create a new email
Set MailItem = OutlookApp.CreateItem(0)
With MailItem
.To = emailAddress
.Subject = emailSubject
.Body = companyName & vbTab & personName & "様" & vbNewLine & _
"お世話になっております。" & vbNewLine & _
senderCompany & " " & senderName & "です。" & vbNewLine & vbNewLine & _
Replace(Replace(emailBody, "{{会社名}}", companyName), "{{氏名}}", personName)
.Display ' Use .Display to review before sending
End With
' Clear the MailItem object
Set MailItem = Nothing
End If
Next i
' Cleanup
Set OutlookApp = Nothing
MsgBox "Emails have been prepared successfully!", vbInformation
End Sub
使用時の注意点
マクロの有効化
Excelファイルをマクロ有効ブック(.xlsm形式)で保存してください。
信頼性のあるマクロの使用
セキュリティ上の理由から、信頼できるソースのマクロのみを使用してください。
一括送信の応用例
上記のコードに加え、添付ファイルの送信やBCCの設定などを加えることで、さらに便利に活用できます。
カスタムが必要な方はお気軽にご相談ください。
ExcelとOutlookの連携による作業効率化
ここまでお伝えした内容を使用することで、Outlookからのメール送信が格段に効率化されます。特に、大量のメールを手作業で送信する必要がある場合、このマクロが大いに役立つでしょう。
次は、実際にマクロを作成して試してみましょう。操作を繰り返すことで、より深い理解と応用力が身に付きます。
まとめ
この記事では、ExcelとOutlookを連携させたマクロを使用して、一括でメールを送信する方法をお伝えしました。
VBAコードを使用した基本的なメール送信
宛先、件名、本文をExcelに記載し、自動でメールを送信するマクロを紹介しました。
応用例としての添付ファイルの送信
ファイルを添付する方法を加えることで、より実用的に。
この方法を活用することで、日々の業務効率を大幅に向上させることができます。ぜひ、自分の業務に合わせたマクロを作成し、作業を効率化してみてください。