BCCでの一斉送信ではそれぞれの宛先の対応ができない…
毎回同じようなメールを手入力するのが面倒…
メールを一斉送信する時、本文変更ができずに困った経験、あるのではないでしょうか。そんな悩みを解決するのが、VBAを使ったメール自動作成です。
このVBAコードをコピペするだけで、Outlookのメールを簡単に作成できます。ほかのVBAと連携させて、見積書取得システムなどを作ることも可能です。
このVBAは初心者にもピッタリの内容なので、スキルアップの意味でもおすすめです!
また「VBAは初めてでよく分からない…」という方でも、そのまま使えるエクセルファイルも用意しています。まずはダウンロードして試してみてください。
※添付付きメールを作成する場合はコチラ!
【結論】コピペで使えるメール作成VBA
以下のコードをコピペするだけで、Outlookのメールを自動作成できます。
実行の際、あらかじめ宛先/CCなどの項目の作成が必要です。詳しくはこの後紹介します。
Sub SendEmail()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim ws As Worksheet
Dim lRow As Long
Dim strto As String, strcc As String, strsub As String, strbody As String
'Outlookのアプリケーションを起動
Set olApp = New Outlook.Application
'メール送信リストが記載されたシートを設定
Set ws = ThisWorkbook.Sheets("Sheet1")
'最終行を取得
lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row
'1行ずつデータを取得し、メールを送信
For i = 2 To lRow
'宛先
strto = ws.Cells(i, 1).Value
'CC
strcc = ws.Cells(i, 2).Value
'件名
strsub = ws.Cells(i, 3).Value
'本文
strbody = ws.Cells(i, 4).Value & vbCrLf _
& ws.Cells(i, 5).Value & vbCrLf _
& ws.Cells(i, 6).Value & vbCrLf _
& ws.Cells(i, 7).Value
'メールを作成
Set olMail = olApp.CreateItem(olMailItem)
'送信先、CC、件名、本文を設定
With olMail
.To = strto
.CC = strcc
.Subject = strsub
.Body = strbody
.Display 'メールを表示
'.Send '自動で送信する場合はコメントアウトを外す
End With
'オブジェクトを解放
Set olMail = Nothing
Next i
'オブジェクトを解放
Set olApp = Nothing
End Sub
【番外】そのまま使えるエクセルファイル
VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ここに内容を書き込むだけで、簡単にメールが自動作成できます。
PCによっては「参照設定の追加」が必要となることがあります。エラーが出る場合は、この記事で紹介している「参照設定の追加」を試してください。

※ウイルスではもちろんありませんが、マクロ付きのため、自己責任でお願いします。
メール自動作成VBAの動作と使い方
実行すると、リストをもとにOutlookのメールが自動作成されます。

デフォルトでは、自動送信をオフにしていますが、送信まで自動化することも可能です。

メール自動送信VBAの使い方
ここからはVBAのコピペ方法を含めて、使い方を紹介します。
エクセルの準備(項目設定・to/cc/本文の入力)
まず、エクセルのシートに以下のタイトルを入力してください
・A列:宛先(To)
・B列:CC
・C列:件名
・D列:会社名
・E列:担当者
・F列:本文
・G列:署名

直接この名前をVBAで認識はしていません。ただ、リスト入力の間違い防止になるため、この内容で入力してください。
VBAの埋込/ボタンの挿入
エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。
「開発」を出す設定やコードの書き方は、別の記事で詳しく解説しています。こちらの記事もぜひ参考にしてみてください。
【重要】参照設定の追加
このVBAを使用するためには、参照設定の追加が必要になります。エクセル上部の[開発]→[Visual Basic]と進み、VBAの編集画面を表示させます。(開発タブがない方はコチラ)

VBAの編集画面から[ツール]→[参照設定]と進みます。

参照設定の下の方に、[Microsoft Outlook 16.0 Object Library]があります。チェックを入れOKボタンを押します。

メール内容の書き込み・VBA実行
あとはメール内容を書き、 VBAを実行すればメールが自動的に作成されます。
会社名・担当者は、本文の上側に入るように設定しています。また署名は本文の下に入るように設定しています。
なお改行は一つしか入れていません。必要があれば、セル内で改行を足すか、コードを編集するようにしてください。

また、送信ボタンを設置すると、マクロ画面を開く必要がなくなりとても便利です。ボタンのつけ方は、こちらの記事を参考にしてください。
エラーの対処
このVBAを実行すると、以下のようなエラーが出ることがあります。

このエラーは、参照設定で解消できることがほとんどです。参照設定の方法は、この記事の[【重要】照設定の追加]の項を参考にしてください。
さいごに
今回は、Outlookのメール自動作成VBAを紹介しました。とても効率がUPするVBAなので、ぜひ活用してみてください。
またこのコードはChatGPTで作ったVBAを元にしています。ChatGPTを使ったVBA作成法も別の記事で紹介しています、そちらもぜひ参考にしてみてください!
コメント