ExcelVBA~Excelで簡単メール送信~

1. 概要

この記事では、Excelの特定のテンプレートを使用して、指定したメール情報(宛先、CC、BCC、件名、本文)をOutlookを介して送信する方法を説明します。
テンプレートを活用することで、定型メールを簡単に作成・送信でき、業務の効率化に役立ちます。


2. 必要な準備

  1. Excel VBAの有効化
    • Excelの「オプション」からマクロの実行を許可してください。
    • マクロ有効ブックとして保存も忘れずに!
  2. テンプレートの準備
    • ExcelのSheetに以下のフォーマットを用意してください。
      • A2セル:件名
      • B2セル:本文
      • C2セル:宛先 (To)
      • D2セル:CC
      • E2セル:BCC
  3. Outlookの設定
    • Outlookがインストールされ、適切に設定されていることを確認してください。
    • メールアカウントが正しく設定されていることが必要です。

3. 実行方法

以下のVBAコードを使用して、Excelのテンプレート情報をもとにメールを送信します。

Sub SendTemplateMail()
' シート設定
Dim ws As Worksheet
Set ws = Worksheets("sheet1") ' メール情報が入力されているシートを指定

' Outlookアプリケーションを起動
Dim outlookApp As Object
Set outlookApp = CreateObject("Outlook.Application") ' Outlookを起動

' メールアイテムを作成
Dim mailItem As Object
Set mailItem = outlookApp.CreateItem(0) ' olMailItem(= 0) を指定してメール作成

' メール情報の設定
With mailItem
.To = ws.Range("C2").Value ' 宛先(To)
.CC = ws.Range("D2").Value ' CC
.BCC = ws.Range("E2").Value ' BCC
.Subject = ws.Range("A2").Value ' 件名
.Body = ws.Range("B2").Value ' 本文
.BodyFormat = 2 ' 1:プレーンテキスト, 2:HTML, 3:リッチテキストコメントアウトするとデフォルト設定になります。
End With

' メールの処理
mailItem.Display ' メールを表示(送信前に確認)
mailItem.Save ' 下書きとして保存
' mailItem.Send ' メール送信(必要に応じてコメントを解除)

' オブジェクトの解放
Set mailItem = Nothing
Set outlookApp = Nothing

' 完了メッセージを表示
MsgBox "メールの作成が完了しました!", vbInformation
End Sub



4. 出力結果

  1. メールの自動作成
    • Sheet1のデータをもとに、件名や本文、宛先が自動入力されたメールが作成されます。
  2. 手動送信
    • 生成されたメールは .Display で表示され、内容を確認後、手動で送信できます。
    • 自動送信する場合は、コード内の .Display.Send に変更します。
  3. 送信結果の確認
    • メールが正常に送信されたことを確認できます。

5. 注意事項

  1. メール情報の正確性
    • Excelテンプレート内の宛先・件名・本文が正しく入力されているか確認してください。
  2. Outlookの設定
    • Outlookがインストールされている必要があり、送信アカウントが正しく設定されていることを確認してください。
  3. メール本文の改行処理
    • 本文の改行を正しく適用するために、エクセルのセルごとの改行を適切に配置してください。
  4. 自動送信の設定
    • .Send を使用するとメールが即時送信されるため、テスト時には .Display を使用して確認することをおすすめします。
  5. アプリケーションの起動順序
     詳しくは次の投稿で説明します!

コメント