【入門編】【初心者向け】メール本文に「本日の日付」や「担当者名」を自動挿入する定型メール作成のテンプレート化 – Outlook VBA解析バイブル

スポンサーリンク

Outlook VBAで「定型メール作成」を自動化!明日から使えるテンプレートの極意

こんにちは。現場の最前線で自動化を極めるエンジニアです。

毎日毎日、同じような文面で「お疲れ様です、〇〇です」と打っている時間は、実は「最も削るべきコスト」です。Outlook VBAを使えば、その作業を0.1秒で終わらせることができます。

今回は、マクロの記録という「魔法の杖」がないOutlookにおいて、どうやってメールを操るのか。その第一歩として、「動的な文字列置換」による定型メール作成の極意を伝授します。

1. なぜ「Bodyプロパティ」を操るのか?

Outlook VBAの核心は、`MailItem` オブジェクトにあります。メール一通一通がこの「オブジェクト」という箱であり、その中身(本文)を書き換えるのが `Body` プロパティです。

初心者がやりがちなのは「メールを一つずつ手で編集する」ことですが、プロの自動化は「テンプレートを呼び出し、必要な部分だけをプログラムで差し替える」という手法をとります。

今回のレシピ

  • 本日の日付:`Date` 関数で自動取得
  • 宛先・署名:テンプレートに埋め込み
  • 置換の魔法:特定のキーワード(例:`{NAME}`)を動的に書き換える

2. 実践!テンプレート自動作成コード

まずは以下のコードをVBAエディタ(Alt + F11)に貼り付けてみてください。

Sub CreateTemplateEmail()
Dim objMail As MailItem
Dim strBody As String
Dim userName As String

‘ 1. 担当者名を定義(ここを書き換えるだけでOK)
userName = “山田 太郎”

‘ 2. メールオブジェクトを新規作成
Set objMail = Application.CreateItem(olMailItem)

‘ 3. テンプレート本文の作成(改行コード vbCrLf を活用)
strBody = “関係者各位” & vbCrLf & vbCrLf & _
“{DATE} お疲れ様です。” & vbCrLf & _
“{NAME}です。” & vbCrLf & vbCrLf & _
“本日の業務報告をいたします。” & vbCrLf & _
“(ここに内容を記載)”

‘ 4. 文字列の置換処理(Replace関数がカギ!)
strBody = Replace(strBody, “{DATE}”, Format(Date, “yyyy年mm月dd日”))
strBody = Replace(strBody, “{NAME}”, userName)

‘ 5. メールの設定
With objMail
.Subject = “【業務報告】” & Format(Date, “mm/dd”)
.Body = strBody
.Display ‘ 表示モード(いきなり送信せず、まずは確認するのが自動化の鉄則!)
End With

‘ オブジェクトの解放(メモリ管理の基本)
Set objMail = Nothing
End Sub

3. コードの「ここが重要!」ポイント解説

① `Replace` 関数こそが自動化の要

コード内で `{DATE}` や `{NAME}` といった「プレースホルダー(置き換え予定地)」を作っています。これを `Replace` 関数で書き換えることで、テンプレートの構造を崩さずにデータだけを流し込むことができます。これがメンテナンス性を高める秘訣です。

② `vbCrLf` は改行のプロ

VBAの世界で `Enter` キーを叩くことはできません。代わりに `vbCrLf` (Visual Basic Carriage Return Line Feed) という定数を使います。これを覚えるだけで、メールのレイアウトが劇的に美しくなります。

③ `Display` で止める慎重さ

いきなり `.Send`(送信)させないでください。自動化の基本は「人間が最終チェックをして送信ボタンを押す」という、半自動化からスタートすることです。慣れてきてミスがなくなってから `.Send` に切り替えましょう。

4. 陥りやすい「落とし穴」

  • HTMLメールとテキストメールの混同

今回のコードは「テキスト形式」を想定しています。もしHTMLメール(リッチなフォントなどを使いたい場合)で運用したいなら、`.Body` ではなく `.HTMLBody` プロパティを使い、HTMLタグで記述する必要があります。まずはこのテキスト形式で基本をマスターしましょう。

  • 署名の自動挿入

`.Body = strBody` を実行すると、Outlookの設定にある「署名」が消えてしまうことがあります。その場合は `.Display` を先に実行してから、`.Body = .Body & vbCrLf & “署名”` のように、既存の本文の後ろに署名を結合するのが現場のテクニックです。

さあ、一歩踏み出そう

「プログラムを書く」というと難しく聞こえますが、要は「面倒な文字列操作をPCに代行させるだけ」のことです。

まずは上記のコードをコピペして、自分の名前に書き換えてみてください。その一回が、あなたの業務効率を劇的に変える第一歩になります。

何か分からないことがあれば、またいつでも聞いてくださいね。あなたの自動化エンジニアとしての最初の一歩を、心から応援しています!

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