サイトアイコン 効率化大全

【コピペでOK】エクセルからOutlookメールを自動作成!コピペで使えるVBA(マクロ)コード!

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

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

【番外】そのまま使えるエクセルファイル

VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ここに内容を書き込むだけで、簡単にメールが自動作成できます。

PCによっては「参照設定の追加」が必要となることがあります。エラーが出る場合は、この記事で紹介している「参照設定の追加」を試してください。

エクセルファイルはNoteにて販売しています。すぐに使いたい方はこちらを活用してください。

【Excelツール】Outlook一括送信|すぐに使える完成版ダウンロード|犬井 | 効率化大全
同じようなメールを、宛名と添付を変えて1件ずつ送るのが面倒… 挨拶メール、BCCじゃなくて一人ひとりに宛てて送りたい 同じような文面のメールを、宛名だけ変えて何十件も送る作業に時間を取られていないでしょうか? この記事は、そんな「メール送信...
【さらにお得】効率化ツール全セット版も公開中!

Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。

複数使う予定の方は、こちらの方が圧倒的にお得です。

▼ 効率化ツール全セットはこちら

【DLで使える!】Excel・Outlookの「単純作業」自動化ツール|犬井 | 効率化大全
※2025/1/7にエクセルファイル/CSVの統合ツールを追加しました! 購入いただいた方は、追加ツールは追加費用なしでダウンロード可能です! Outlookで、宛先と添付ファイルだけを変えた似たようなメールの作成『202501_請求書』の...

メール自動作成VBAの動作と使い方

実行すると、リストをもとにOutlookのメールが自動作成されます。

エクセルに宛先~署名を記載すると、内容通りにメールが作成されます。

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

実行後の画面。メールを確認して手作業で送信ボタンを押す必要があるが、自動送信にすることも可能。

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

メール自動送信VBAの使い方

ここからはVBAのコピペ方法を含めて、使い方を紹介します。

エクセルの準備(項目設定・to/cc/本文の入力)

まず、エクセルのシートに以下のタイトルを入力してください

・A列:宛先(To)
・B列:CC
・C列:件名
・D列:会社名
・E列:担当者
・F列:本文
・G列:署名

直接この名前をVBAで認識はしていません。ただ、リスト入力の間違い防止になるため、この内容で入力してください。

VBAの埋込/ボタンの挿入

エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。

「開発」を出す設定コードの書き方は、VBAの基礎として、別記事で詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

【重要】参照設定の追加

このVBAを使用するためには、参照設定の追加が必要になります。エクセル上部の[開発]→[Visual Basic]と進み、VBAの編集画面を表示させます。(開発タブがない方はコチラ)

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

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

メール内容の書き込み・VBA実行

あとはメール内容を書き、 VBAを実行すればメールが自動的に作成されます。

会社名・担当者は、本文の上側に入るように設定しています。また署名本文の下に入るように設定しています。

なお改行は一つしか入れていません。必要があれば、セル内で改行を足すか、コードを編集するようにしてください。

リストにメール内容を入れたサンプル。会社名・担当者・署名の間に改行が必要な場合は、「Alt」+「Enter」で改行。

また、送信ボタンを設置すると、マクロ画面を開く必要がなくなりとても便利です。ボタンのつけ方は、こちらの記事を参考にしてください。

エラーの対処

このVBAを実行すると、以下のようなエラーが出ることがあります。

このエラーは、参照設定で解消できることがほとんどです。参照設定の方法は、この記事の[【重要】照設定の追加]の項を参考にしてください。

さいごに

今回は、Outlookのメール自動作成VBAを紹介しました。とても効率がUPするVBAなので、ぜひ活用してみてください。

このブログでは、このように日常業務が楽になるテクニックから、VBA等のスキルになる情報まで幅広く紹介しています。また現在、Office+生成AI2年間月1800円以下で使える、お得なキャンペーンをMicrosoftが実施しています。裏技的なやり方ですが大変お得なキャンペーンなので、興味がある方はぜひこの記事も参考にしてみてください!

MicrosoftのOffice+生成AIが月1800円以下で使えるお得な裏技はコチラ

※この記事を見た方は、こちらの記事もおすすめです!

モバイルバージョンを終了