メール送信マクロ|複数の宛先にメールを自動作成するエクセルテンプレート
こんにちは、コロスケ( Corosuke blog)です。
この記事では、複数の宛先にoutlookメールを「自動作成」をするマクロを提供しています。
顧客・取引先へ一斉メールを送るのって、ホントに面倒ですよね。
手作業でメールを送ると、それだけで1時間くらい過ぎてしまいます。
でもこのテンプレを使えば、誰でも簡単に一斉メール送信ができます。
僕は仕事の関係上、一斉メールを送る機会が多かったので、年間にすると30時間以上節約することが出来ました。
以降では、メール自動送信マクロの概要を紹介します。
マクロ販売|複数の宛先にメールを自動作成するエクセルテンプレート
このマクロで出来る事は、以下のとおりです。
①リストに記載された取引先へのメールを一括で作成
②取引先毎に異なるデータを添付することができる
③リストの中から送付する取引先を選択が可能
④To1名、CC2名まで送付することが可能
このマクロは、outlookで動作します。
取引先毎に違うデータを添付してメールを送る時に便利なマクロです。
エクセルは、以下のとおりです。
このように一つのシートに「メール本文の情報」と「取引先のリスト」が記載されています。
以降では、具体的な使い方をご説明します。
【使い方1】発送先の情報をリスト化する
まずは、発送先の情報をリストにまとめます。
このように、上から順番に取引先の情報を入力します。
送付先として「TO:1名、CC:2名=計3名」まで登録できます。
テンプレでは50社となっていますが、行の最後に追加すれば、何社でも登録できます。
【使い方2】メール「件名と本文」を記入
次に、メールの件名と本文をエクセルの指定セルに記入します。
普通のメールを打つ感覚で、入力すればOKです。
この内容で取引先へのメールに記載されます。
(一斉送信マクロなので、取引先へ送る文面は全て同じです)
【使い方3】添付ファイルのアドレスを入力
メールに添付ファイルを付けたい時は、添付ファイルを「特定の場所」にまとめて保管して下さい。
そして保管場所のアドレスを、以下の「ファイルアドレス」に入力します。
この画面の例では、「C:¥Users¥test¥Desktop」となっています。
フォルダのアドレスをコピペすればOKです。
【使い方4】共通の添付データのデータ名を入力する
全ての取引先に共通のデータを送る場合は、共通添付1、2にデータ名称を入力します。
この画面では「test.xlsx」と入力しています。
尚、共通添付データは、2つ送付できます。
2つ目を添付したい場合は、「共通添付2」にデータ名を記載して下さい。
【使い方5】取引先毎に違うファイルを添付する
取引先毎に「違うデータ」を添付することができます。
エクセルの右の方に「個別添付ファイル」欄があります。
ここに個別のデータの名称を入力します。
添付しない場合は、空欄にします。
【使い方6】どの会社に送付するかを選択する
リスト上のどの会社に送るかを見極めて、メールを作成することができます。
「送付チェック欄」というところに「○」をつけるとメールを送付します。
送付しない会社は、空欄にしておきます。
リストを変更せずに送付先を選べるので便利です。
【使い方7】「メール作成」ボタンを押す|マクロ起動
最後に、内容を確認して「メール一括作成」ボタンを押します。
このマクロでは、誤送信防止のために送信までは行いません。
ボタンを押すと、メールを自動で作成してくれます。
上の画面のようなメール画面が出来上がるので、ご自身で問題ないかを確認の上、メールを送信下さい。
【便利な機能】フォルダにあるデータ名を読み取るマクロ搭載
添付データを自分で転記するのは大変ですよね。
また自分で転記すると、記載ミスなどが起こるリスクがあります。
そこで本マクロでは、「フォルダにあるデータを読み取るマクロ」を搭載しています。
ファイルアドレスを記入した状態で、「ファイル読み取り」を押すと・・・
このように、ファイル読み取りシートにファイル名が入力されます。
これをvlookupなどで、ぶつけると個別データをすぐに入力できます。
(ファイル名と会社名にしておくと、vlookupがしやすいです)
【無料です】エクセルマクロはタダです!
本エクセルデータの値段は、タダです!
このマクロを使えばあなたの一斉送信の工数は大きく削減できます。
無料なので試しに使って見て下さい!
一斉送信マクロで、仕事の生産性を上げましょう!
メール自動作成マクロのダウンロードはこちら
以下のフォルダをダウンロードお願いします。
ダウンロードしたら、必ず事前に「試し」で使って下さい。
(いきなり本番で使うと、誤送信などのリスクがあります)
※本マクロは自己責任でご使用下さい!本マクロに伴う損害は一切保証しません!
■よくある質問
・マクロが動かない
エクセルを開くと、以下の通り警告が出てきます。
これは、マクロ形式のエクセルでは必ず出てきます。
必ず「コンテンツの有効化」を押しましょう。(そうしないとマクロが機能しません)
そして、エクセルには参考情報が入力されています。
このままボタンを押してもエラーになります。
今までの説明を読みながら、自分で必要な情報を入力してみて下さい。
(試しに自分のメールアドレスで試すのがおすすめです)
もしエラーが出た場合は、以下の対策を取って見て下さい。
・ファイルのアドレスが分からない
ファイルのアドレスは、フォルダの上部に書かれています。
上部を押すと、フォルダのアドレスが表示されます。
上記のように、コピーしましょう。
・メール本文を改行できない
メール本文のセルを改行する場合は「alt+enter」を同時に押してください。
・「ファイルのパスが見つからない」というエラーが出る
データを保管しているファイルのアドレスに誤りがあると、このエラーが出ます。
まず「B3セル」の内容を確認下さい。
フォルダのアドレスをコピペして、B3セルに貼り付けます。
そして共通添付・個別添付のセルには、添付データの名称を入力します。
例えば「test.xlsx」と入力します。
末尾の「.xlsx」や「.pdf」もきちんと入力して下さい。
手入力した場合は、誤りがないかもう一度ご確認下さい。
(末尾に空白スペース「 」が無いようにして下さい)
■コード
エクセルをダウンロードできない方は、以下コードをコピペして下さい。
<メール作成>
Sub メール作成()
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim wsMail As Worksheet
Dim filead As String
Dim tenp1 As String
Dim tenp2 As String
'メール立ち上げ
Set objOutlook = New Outlook.Application
Set wsMail = ThisWorkbook.Sheets("リスト")
'添付ファイルのアドレスを変数にする
filead = Worksheets("リスト").Range("B3").Value
'共通添付データのアドレスを読む
tenp1 = filead & "\" & Worksheets("リスト").Range("B4")
tenp2 = filead & "\" & Worksheets("リスト").Range("B5")
Dim kobetsumail1 As String
Dim kobetsumail2 As String
Dim adrs1 As String
Dim asrs2 As String
'変数iを設定。最初は1
Dim i As Long
i = 1
'送付前の確認メッセージ
Dim rc As Long
rc = MsgBox("記載に誤りが無いことを確認しましたか?", vbYesNo + vbQuestion, "確認")
If rc = vbNo Then
MsgBox "中断しました"
End
End If
'基準となるセルを選択
Worksheets("リスト").Select
Range("B7").Select
'取引先名が書かれているB列が空欄になるまで続ける
Do Until ActiveCell.Offset(i, 0).Value = ""
'送付チェック欄が○なら作業を続ける
If ActiveCell.Offset(i, 2).Value = "○" Then
Set objMail = objOutlook.CreateItem(olMailTtem)
'個別メールのデータ名称を読む
Dim CC12(1) As String
CC12(0) = ActiveCell.Offset(i, 6).Value
CC12(1) = ActiveCell.Offset(i, 8).Value
'メールを作成する
With wsMail
objMail.to = ActiveCell.Offset(i, 4).Value
objMail.CC = Join(CC12, ";")
objMail.Subject = Range("B1").Value
objMail.Bodyformat = olFormatPlain
objMail.body = Range("B7").Offset(i, 0) & vbCrLf & Range("E7").Offset(i, 0) & "様" & vbCrLf & vbCrLf & Range("B2").Value & vbCrLf & vbCrLf
kobetsumail1 = ActiveCell.Offset(i, 9).Value
asrs1 = filead & "\" & kobetsumail1
kobetsumail2 = ActiveCell.Offset(i, 10).Value
asrs2 = filead & "\" & kobetsumail2
If Range("B4").Value <> "" Then
objMail.Attachments.Add tenp1
End If
If Range("B5").Value <> "" Then
objMail.Attachments.Add tenp2
End If
If ActiveCell.Offset(i, 9).Value <> "" Then
objMail.Attachments.Add asrs1
End If
If ActiveCell.Offset(i, 10).Value <> "" Then
objMail.Attachments.Add asrs2
End If
objMail.Display
End With
End If
i = i + 1
Loop
Set objOutlook = Nothing
MsgBox "送信完了しました"
End Sub
ーーー
<ファイル名読み込み>
Sub ファイル読み取り()
'添付ファイルのアドレスを変数にする
Dim filead As String
filead = Worksheets("リスト").Range("B3").Value
Worksheets("ファイル読み取り").Select
Range("A:B").ClearContents
Range("A1").Select
Dim i As Long
Dim filename As String
With Worksheets("ファイル読み取り")
filename = Dir(filead & "\" & "*")
i = 1
Do While filename <> ""
.Cells(i, 1) = filename
i = i + 1
filename = Dir()
Loop
End With
End Sub
ーーー
如何だったでしょうか?
マクロでメールを自動作成できると、メール作成工数を大きく削減できます。
顧客・取引先への一斉送信メールで本マクロを活用しましょう!
この記事が気に入ったらサポートをしてみませんか?