【ExcelVBA・マクロ】ExcelのリストからOutlookの下書きを自動作成する方法

ExcelのリストからOutlookの下書きを自動作成する方法 ExcelVBA

Excelにまとめた宛先リストを見ながら、1件ずつメールを作成するのは大変な作業です。 VBAを使えば、Excel上の「宛先」「件名」「本文」を読み取って、Outlookのメールを自動で生成できます。

スポンサーリンク
スポンサーリンク

今回紹介するコードの動作イメージ

  1. Excelの表(2行目から開始)を1行ずつ読み取ります。
  2. Outlookを起動し、新しいメール画面を作成します。
  3. 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つのマクロは、どれも事務職の方から非常にリクエストが多いものです。

  1. 目次作成で「探す手間」を省く
  2. 重複削除で「データ整理」を自動化する
  3. メール作成で「ルーチンワーク」を劇的に減らす

これらを組み合わせることで、あなたのExcel作業はもっとスマートになります。 ぜひご自身の業務に合わせてカスタマイズしてみてくださいね。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました