Outlook VBAでメールを作成する方法をお探しですね。

広告

毎日のメール送信、もっとラクにしませんか?Outlook VBAで定型メールを自動化する方法

毎月の請求書送付や顧客へのご案内など、似たようなメールを何通も送る作業に時間を取られていませんか?この記事では、Outlook VBAを使って定型メールを自動で作り、複数の相手に一斉送信するマクロの作り方をわかりやすく解説します。

コピペですぐ使えるサンプルコードから、Excelリストとの連携方法、そして一番怖い「誤送信」を防ぐコツまで、まるっとカバーしました。

プログラミングが初めての方でも、この記事を読めば安全にメール送信を自動化できて、本当に大切な仕事に集中できるようになりますよ。

Outlook VBAでメールを自動化すると、こんなに便利!

取引先や社内に、同じような内容のメールを何十通も送る作業って、本当に大変ですよね。

宛先を間違えたり、ファイルの添付を忘れたり…そんなヒヤッとする経験、誰にでもあると思います。

こういった繰り返しの作業を根本から効率化できるのが、ExcelとOutlookを組み合わせたVBA(Visual Basic for Applications)というマクロ機能なんです。

VBAを使えば、Excelシートに書いた顧客リストや請求金額などのデータを自動で読み込んで、メールの件名や本文をパパッと作成してくれます。

しかも、特別なソフトを買う必要はなし。

今使っているMicrosoft Officeだけで、高度な自動化ができちゃうんです。

メール作成を自動化すると、時間の節約だけじゃなく、精神的にもすごくラクになります。

手作業だと「宛先、合ってるかな?」「ファイル、ちゃんと添付したかな?」って1通ずつ確認するプレッシャーがありますよね。

でもマクロなら、最初に設定したルール通りに正確にメールを作ってくれるので、確認作業もグッと減らせます。

【準備編】ExcelとOutlookをつなげる設定と、送信リストの作り方

VBAでメールを自動送信するには、まずExcelで「開発」タブを表示させる必要があります。

普段は隠れているので、Excelの「ファイル」→「オプション」→「リボンのユーザー設定」を開いて、「開発」にチェックを入れましょう。

次に、開発タブから「Visual Basic」を開いて、「ツール」→「参照設定」で「Microsoft Outlook XX.X Object Library」(XXはバージョン番号)にチェックを入れます。

これで、ExcelからOutlookを操作する準備が整いました。

送信リストの作り方

マクロがちゃんと動くように、Excelで送信先のリストを作りましょう。

1行目に項目名を書いて、2行目以降にデータを入力していく、表形式にするのがポイントです。

**おすすめの列構成:**

– **A列:** 送信フラグ(「〇」を入力した行だけ送信)
– **B列:** 会社名や担当者名(メールの宛名に使います)
– **C列:** メールアドレス
– **D列:** 添付ファイルの保存場所(ファイルパス)

こんな感じで整理しておくと、後で紹介するプログラムがスムーズにデータを読み込めます。

【実践編】メールを自動で作るVBAコードを書いてみよう

それでは、実際にメールを自動作成するVBAコードを見ていきましょう。

このコードは、Excelのリストを上から順番に読んで、A列に「〇」がついている行だけOutlookでメールを作成します。

“`vba

Sub SendOutlookMails()
    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.Worksheets("送信リスト")

    ' データが入っている最後の行を取得
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    ' 2行目から最後の行まで繰り返し
    For i = 2 To lastRow
        ' A列に「〇」がついている行だけ処理
        If ws.Cells(i, "A").Value = "〇" Then
            ' 新しいメールを作成
            Set MailItem = OutlookApp.CreateItem(0)

            With MailItem
                ' 宛先(C列のメールアドレス)
                .To = ws.Cells(i, "C").Value

                ' 件名(B列の名前+「様へのお知らせ」)
                .Subject = ws.Cells(i, "B").Value & "様へのお知らせ"

                ' 本文
                .Body = ws.Cells(i, "B").Value & "様" & vbCrLf & vbCrLf & _
                    "いつもお世話になっております。" & vbCrLf & _
                    "本日の資料を添付いたします。ご確認をお願いいたします。"

                ' D列にファイルパスがあれば添付
                If ws.Cells(i, "D").Value <> "" Then
                    .Attachments.Add ws.Cells(i, "D").Value
                End If

                ' メールを画面に表示(すぐに送信しない)
                .Display
            End With

            Set MailItem = Nothing
        End If
    Next i

    Set OutlookApp = Nothing
    MsgBox "メールの作成が完了しました。", vbInformation
End Sub

“`

コードのカスタマイズ方法

このコードは自由に変更できます。

例えば:

– **本文を変えたい:** `.Body`の後ろの文章を書き換えればOK
– **HTML形式で送りたい:** `.Body`を`.HTMLBody`に変えて、HTMLタグを使えば文字装飾もできます
– **CCやBCCを追加したい:** `.CC`や`.BCC`を追加すればOK

まずは少人数のテストリストで試して、思い通りに動くか確認してから本番で使うのがおすすめです。

誤送信を防ぐ!安全にマクロを使うコツ

マクロは便利ですが、間違った内容を一気に大量送信してしまうリスクもあります。

そこで、安全に使うためのポイントをご紹介します。

1. いきなり送信しない

上のコードでは`.Display`を使って、メールを画面に表示するだけにしています。

`.Send`を使うと自動で送信されてしまうので、**最初は必ず`.Display`を使いましょう**。

画面で確認してから、手動で送信ボタンを押すのが一番安全です。

2. コメントを残す

コードに日本語でメモ(コメント)を書いておくと、後で見返したときや他の人が使うときに便利です。

VBAでは`’`(シングルクォーテーション)の後ろに書いた文字は緑色になって、プログラムとして実行されません。

“`vba

' ここは宛先を設定する部分です
.To = ws.Cells(i, "C").Value

“`

3. エラーチェックを入れる

メールアドレスが空欄だったら警告を出すなど、エラーチェックを追加するとさらに安全です。

“`vba

If ws.Cells(i, "C").Value = "" Then
    MsgBox i & "行目のメールアドレスが空欄です!", vbExclamation
    Exit Sub
End If

“`

4. マニュアルを作る

使い方や注意点を簡単にまとめたメモをExcelシートに書いておくと、担当者が変わっても安心です。

まとめ:VBAで定型メール業務をもっと効率的に

Outlook VBAを使えば、毎日の定型メール作成がグッとラクになります。

最初の設定は少し手間ですが、一度作ってしまえば、あとはボタン一つでメールが完成。

時間も節約できて、ミスも減らせます。

**この記事のポイント:**

– ExcelとOutlookを連携させれば、定型メールを自動作成できる
– 送信リストは表形式で整理するのがコツ
– `.Display`で画面表示してから送信すれば誤送信を防げる
– コメントやマニュアルを残して、誰でも使えるようにしよう

まずは小さなリストで試してみて、慣れてきたら本格的に活用してみてください。

浮いた時間で、もっと大切な仕事に集中できますよ!

広告