エクセルで名簿リストから宛先を変えて同じメールと添付ファイルを自動で送る方法

エクセル

あなたは同じ内容のメールを宛先を変えて送りたいと思ったことはありませんか?

新商品のご案内、商品の価格改定、住所の変更、イベントのご案内など、同じ内容で宛先を変えたり、同じ添付ファイルを付けて送る場面は多いですよね。

いちいち一つずつメールを作っていたらキリがありません。

エクセルVBAを使えば、ボタン一つで複数のメールを送れます。

いわゆる「差し込み印刷」のようなもので、「差し込みメール」と言えばいいでしょうか。

今回は「エクセルで名簿リストから宛先を変えて同じメールと添付ファイルを自動で送る方法」を紹介します。

エクセルで名簿リストから宛先を変えて同じメールと添付ファイルを自動で送る方法

エクセルで名簿リストから宛先を変えて同じメールと添付ファイルを自動で送る方法です。

下の様なリストを想定して紹介します。

B列に宛先、C列に送りたいメールアドレスが入っています。

F12セルにメールの件名、F13セルにメール本文、F14~F16は添付ファイルのパスが入っています。

添付ファイルはあらかじめ準備しておきます。

これで準備できました。

マクロを作るときは、「開発」タブを使います。
開発タブが出ていない方は、下のリンクで出し方を紹介していますので、まずは準備をお願いします。
→エクセルで開発タブを表示する方法

1.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

2.「新規作成」をクリック

3.コード入力画面が開く

4.コードを入力

コードを入力します。

エクセルシートから、宛先、件名、本文、添付ファイルを設定し、メールを送信する、という意味です。

赤枠部のコードです。

    Dim OutlookApp As Object
    Dim MailItem As Object
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long

    ' Outlookアプリケーションを作成
    Set OutlookApp = CreateObject("Outlook.Application")

    ' シートを設定
    Set ws = ThisWorkbook.Sheets("Sheet59") ' シート名を適切なものに変更

    ' 最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    ' 各行ごとにメールを作成して送信
    For i = 3 To lastRow
        ' メールアイテムを作成
        Set MailItem = OutlookApp.CreateItem(0)

        ' 宛先を設定
        MailItem.To = ws.Cells(i, 3).Value

        ' 件名を設定
        MailItem.Subject = ws.Range("F12").Value ' 件名を適切なものに変更

        ' 本文を設定
        MailItem.Body = ws.Cells(i, 2).Value & "  様" & vbCrLf & vbCrLf & ws.Range("F13").Value
        
        ' 添付ファイルを追加
        Dim filePath As Variant
          For Each filePath In ws.Range("F14:F16").Value
          
                    If Len(filePath) > 0 Then
                    
                    MailItem.Attachments.Add CStr(filePath)
                    
          End If
            
        Next filePath
        

        ' メールを表示(送信前に確認する場合はコメントアウトを外してください)
        MailItem.Display

        ' メールを送信
        MailItem.Send

        ' メールアイテムを解放
        Set MailItem = Nothing
    Next i

    ' Outlookアプリケーションを解放
    Set OutlookApp = Nothing

コードを入力したら、コードの入力画面を閉じて下さい。

5.ボタンができた →ボタンをクリック

ボタンができました。

ボタンをクリックします。

※Outlookは起動した状態でボタンを押して下さい。

メールが送信されました。

今回は便宜的に送り先を同じアドレスにしています。

7件のメール送信がボタン一つで済みました。

メールを開くとこんな感じです。宛先がエクセルリストのようになっていて、添付ファイルも付いているのがわかります。

宛先に「様」も付いてます。

ご案内メールなら、送信元の署名欄も設定しておくと良いです。

これなら10件でも100件でも、毎回のご案内メールの抜け漏れなく、しかも楽に送信できますね!

まとめ

エクセルで名簿リストから宛先を変えて同じメールと添付ファイルを自動で送る方法のまとめです。

1.エクセルでリスト、添付ファイルを準備

2.「開発」タブをクリック →「挿入」をクリック →「ボタン」をクリック

3.新規作成をクリック

4.コードを入れる画面が出る

5.コードを入力

6.ボタンができた →ボタンをクリック

7.メールが一斉送信される

これで同じご案内を何度もするのが楽になりますね!

※会社のシステムによっては、1時間に100回以上メールを送ると、迷惑メール扱いされるなど、セキュリティが設定されている場合がありますので、ご注意ください。

コメント

タイトルとURLをコピーしました