Excelにまとめた宛先リストを見ながら、1件ずつメールを作成するのは大変な作業です。 VBAを使えば、Excel上の「宛先」「件名」「本文」を読み取って、Outlookのメールを自動で生成できます。
今回紹介するコードの動作イメージ
- Excelの表(2行目から開始)を1行ずつ読み取ります。
- Outlookを起動し、新しいメール画面を作成します。
- Excelの内容を「宛先」「件名」「本文」に自動で流し込み、下書きとして保存します。
メールを下書き作成するVBAコード
VBA
Sub CreateOutlookEmails()
Dim outlookApp As Object
Dim mailItem As Object
Dim i As Long
Dim lastRow As Long
' Outlookオブジェクトの作成
Set outlookApp = CreateObject("Outlook.Application")
' 最終行を取得
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
' 2行目からデータ終了までループ
For i = 2 To lastRow
Set mailItem = outlookApp.CreateItem(0) ' 0はolMailItem
With mailItem
.To = Cells(i, 1).Value ' A列:メールアドレス
.Subject = Cells(i, 2).Value ' B列:件名
.Body = Cells(i, 3).Value ' C列:本文
' すぐ送信せず「下書き保存」にする
.Save
' 内容を確認したい場合は .Display に変えると画面が開きます
End With
Next i
MsgBox "Outlookへ下書きを保存しました。", vbInformation
' オブジェクトの解放
Set outlookApp = Nothing
End Sub
ポイント解説
- CreateObject(“Outlook.Application”):Outlookがインストールされていれば、参照設定なしで動く「実行時バインディング」という書き方です。
- .Save:下書きフォルダに保存します。一気に送るのが怖い場合でも、一度下書きに入るので安心です。
まとめ
今回紹介した3つのマクロは、どれも事務職の方から非常にリクエストが多いものです。
- 目次作成で「探す手間」を省く
- 重複削除で「データ整理」を自動化する
- メール作成で「ルーチンワーク」を劇的に減らす
これらを組み合わせることで、あなたのExcel作業はもっとスマートになります。 ぜひご自身の業務に合わせてカスタマイズしてみてくださいね。


コメント